【问题标题】:Visualise audio waveform from video local file using Qmedia player使用 Qmedia 播放器从视频本地文件中可视化音频波形
【发布时间】:2014-06-25 23:38:12
【问题描述】:

我尝试使用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 函数运行良好。

你有什么想法,还是我走错了方向? 否则还有其他方法可以从视频文件中分割音频。

非常感谢

【问题讨论】:

    标签: c++ qt


    【解决方案1】:

    从 QMediaPlayer 上的文档中,我认为由于属性 audioAvailable 可以更改,因此默认情况下 audioAvailable 为 false。 如果没有可用的音频,setSource 的文档说明

    "如果媒体对象不支持监听音频,这个函数 将返回 false。”

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

    【讨论】:

    • 问题几乎解决了:事实上,文档示例 Player 在使用 qt 5.2.1 mingw 4.8 构建时并没有绘制波形,但是当我将套件更改为 qt 5.3 MSVC2010 时没有其他内容它运作良好。我也尝试使用 qt 5.3 mingw 4.8 但它不起作用。很奇怪!!也许是一个错误!
    猜你喜欢
    • 2011-05-31
    • 1970-01-01
    • 2019-07-02
    • 1970-01-01
    • 1970-01-01
    • 2019-11-22
    • 2011-03-18
    • 1970-01-01
    • 2012-11-16
    相关资源
    最近更新 更多