C ++中的连续流式PCM数据?

时间:2009-12-08 18:38:46

标签: c++ audio audio-streaming pcm

我有从手机拍摄的PCM音频流,我想播放它。

我试图找到一种用C ++播放这种音频的轻量级方法。

我已经可以打一个波形标题并创建一个可以在任何媒体播放器中播放的文件,但我想在播放时实时播放该文件。我想避免将文件写入光盘只是为了阅读它再一次,我也不想在音频中暂停,因为我停止了一个文件并启动另一个文件。

我意识到OpenAL提供了音频流功能,但我希望能有更简单的东西。我只需要播放单通道PCM流。

有没有人知道可以执行此操作的轻量级,免费(用于商业用途)库或Windows API?

3 个答案:

答案 0 :(得分:2)

使用Windows中的waveOut API

答案 1 :(得分:0)

它看起来像patent has expired,所以不应该有法律上的复杂情况。专利的美妙之处在于它使算法公开。

答案 2 :(得分:0)

播放单个PCM流并不简单,唉。它并不那么难。我没有使用OpenAL,但在标准的Windows音频,XAudio2或DirectSound下,它易于使用双缓冲。从流中填充缓冲区2时播放缓冲区1。然后在填充buffer1时播放buffer2,依此类推。