QMediaPlayer - 即时修改音频

时间:2017-08-30 11:45:46

标签: c++ qt qtmultimedia

我正在研究创建简单视频播放器的选项。我想做的是在播放视频时应用一些音频处理(例如,为了简单起见,低通滤波器)。我已经查看了Qt多媒体API,所以这是我的主要问题:

  • 如何编辑QMediaPlayer的音频输出?我需要一些较低级别的API吗?

此外,如果某些其他技术更适合此目的或提供更好的开源库,请随时提出建议。我也有使用C#的经验。

1 个答案:

答案 0 :(得分:2)

QMediaPlayer不允许对音频数据进行低级访问。 我建议您使用QAudioOutputQAudioDecoder类来达到您的目的。 QAudioDecoder生成QAudioBuffer个对象。您可以访问这些对象的data(),处理它(修改它)并将其提供给QAudioOutput对象的start()方法返回的QIODevice。 这将是播放器的音频播放路径。 对于视频,您仍然会使用静音QMediaPlayer来解码来自同一文件的视频帧,并将其输出到QAbstractVideoSurface。然后,您需要一种算法来同步上述两种方法生成的视频和音频帧。