我正在编写一个基于Qt的跨平台程序,它不时需要播放外部(我的控制之外)提供的音频作为原始PCM。确切的格式是16位小端PCM,具有各种常见的采样率。
我的第一个明显的想法是使用Qt自己的Phonon进行音频播放,但这种方法存在两个问题:
我目前正在关注Gstreamer,FFMPEG和libvlc。有什么想法吗?由于我的音频格式非常简单,我不需要花哨的混音(只是音量控制),我想要一个 简单,免费(在自由中),跨平台且广泛可用的库。
答案 0 :(得分:6)
Qt 4.6有新的QtMultimedia模块。
https://doc.qt.io/archives/4.6/qtmultimedia.html
QAudioOutput类似乎可以做你想要的 - 它只是播放原始的PCM数据。
答案 1 :(得分:3)
ffmpeg,libvlc和gstreamer具有超出原始pcm的能力,例如编解码器支持。
出于您的目的,SDL(example 1,example 2),OpenAL,QAudioOutput就足够了。 SDL可能是最受欢迎的选择。
另外,为什么要控制缓冲?缓冲很多意味着更少的中断和更低的功耗。
答案 2 :(得分:1)
你看过OpenAL吗?