用于原始PCM的简单跨平台免费音频库?

gsp*_*spr 4 c++ audio qt cross-platform

我正在编写一个基于Qt的跨平台程序,它不时需要播放外部(我的控制之外)提供的音频作为原始PCM.确切的格式是16位小端PCM,具有各种常见的采样率.

我的第一个明显的想法是使用Qt自己的Phonon进行音频播放,但这种方法存在两个问题:

  1. 据我所知,Phonon不支持无头PCM数据.我不得不破解这个并且每次回放开始时伪造一个WAV标题.但不是一个表明.
  2. 更重要的是:似乎没有任何方法可以控制Phonon(及其后端,如xine,PulseAudio,DirectX等)预先缓冲.它的默认行为似乎是5秒的预缓冲,这对我来说太过分了.我宁愿大约1秒钟,我一定希望能够控制它!

我目前正在关注Gstreamer,FFMPEG和libvlc.有什么想法吗?由于我的音频格式非常简单,我不需要花哨的混音(只是音量控制),我想要一个简单,免费(如自由),跨平台和广泛可用的库.

Bla*_*ura 6

Qt 4.6有新的QtMultimedia模块.

https://doc.qt.io/archives/4.6/qtmultimedia.html

QAudioOutput类似乎可以做你想要的 - 它只是播放原始的PCM数据.