我正在使用QMediaPlayer播放音频,并希望可视化音频电平(例如,在此视频中).
我已经从Qt 4文档中找到了一个例子,但他们手动生成信号,我发现无法通过QMediaPlayer获取音频输出缓冲区.
我应该如何解决这个问题/是否有其他音频库(crossplatform)可以实现这一目标?
谢谢
你应该看看QAudioProbe.
QAudioProbe类允许您监视正在播放或录制的音频.
由于QMediaPlayer是子类QMediaObject,您将附加QAudioProbe到QMediaPlayerwith bool QAudioProbe::setSource(QMediaObject* source),然后连接到void QAudioProbe::audioBufferProbed(const QAudioBuffer& buffer)信号.文档提供了一个示例.
在audioBufferProbed信号的插槽中,您可以处理原始音频数据以计算音量,例如通过计算样本的RMS.看看这篇关于有效计算RMS的文章.
要显示您可以使用的音量QProgressBar,但使用Qt Widgets for Technical Applications库可以获得更好的性能,该库也可以在音量显示所需的对数刻度上工作.
| 归档时间: |
|
| 查看次数: |
2843 次 |
| 最近记录: |