我尝试使用qMediaPlayer
和QaudioProbe
对象绘制波形以获取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函数效果很好。
你有任何想法,或者我的方向错误吗? 否则有其他方法可以从视频文件中分割音频。
非常感谢
答案 0 :(得分:0)
从QMediaPlayer的文档中,我会收集到,因为audioAvailable属性可以更改,默认情况下audioAvailable为false。 如果没有可用的音频,则setSource的文档说明
“如果媒体对象不支持监听音频,则此功能 将返回false。“
在尝试设置来源之前,尝试加载有可用音频的实际媒体(先检查一下)