使用Qmedia播放器可视化视频本地文件中的音频波形

时间:2014-06-25 15:19:42

标签: c++ qt

我尝试使用qMediaPlayerQaudioProbe对象绘制波形以获取QAudioBuffer但没有成功,但是当我尝试时它总是失败:

player =  new QMediaPlayer;
audio  =  new QAudioProbe ;
QAudioRecorder *recorder = new QAudioRecorder();


if (audio->setSource(player))
{
    // Probing succeeded, audioProbe->isValid() should be true.
    std::cout << "probing succed"<< std::endl;
    connect(audio, SIGNAL(audioBufferProbed(QAudioBuffer)), this,
                  SLOT(processBuffer(QAudioBuffer)));
}

这一行:

if (audio->setSource(player))  

总是返回false!

当我用QAudioRecorder替换QMediaPlayer时,setSource函数效果很好。

你有任何想法,或者我的方向错误吗? 否则有其他方法可以从视频文件中分割音频。

非常感谢

1 个答案:

答案 0 :(得分:0)

从QMediaPlayer的文档中,我会收集到,因为audioAvailable属性可以更改,默认情况下audioAvailable为false。 如果没有可用的音频,则setSource的文档说明

  

“如果媒体对象不支持监听音频,则此功能   将返回false。“

在尝试设置来源之前,尝试加载有可用音频的实际媒体(先检查一下)