我有一个从手机捕获的 PCM 音频流,我想播放它。
我正在尝试找到一种在 C++ 中播放此音频的轻量级方法。
我已经可以拍打波头并创建一个可以在任何媒体播放器中播放的文件,但我想在文件流入时实时播放文件。我想避免将文件写入光盘只是为了再次读取它,而且我也不想在停止一个文件并启动另一个文件时暂停音频。
我意识到 OpenAL 提供了音频流功能,但我希望有更简单的东西。我只需要播放单通道 PCM 流。
有谁知道可以做到这一点的轻量级、免费(用于商业用途)库或 Windows API?
我有一个从手机捕获的 PCM 音频流,我想播放它。
我正在尝试找到一种在 C++ 中播放此音频的轻量级方法。
我已经可以拍打波头并创建一个可以在任何媒体播放器中播放的文件,但我想在文件流入时实时播放文件。我想避免将文件写入光盘只是为了再次读取它,而且我也不想在停止一个文件并启动另一个文件时暂停音频。
我意识到 OpenAL 提供了音频流功能,但我希望有更简单的东西。我只需要播放单通道 PCM 流。
有谁知道可以做到这一点的轻量级、免费(用于商业用途)库或 Windows API?
在 Windows 中使用waveOut API
看起来专利已经过期了,所以应该没有法律上的复杂性。专利的美妙之处在于它使算法公开。
唉,播放单个 PCM 流并不是那么简单。它不是那么难。我没有使用过 OpenAL,但在标准 Windows 音频、XAudio2 或 DirectSound 下,它易于使用双缓冲。在从流中填充缓冲区 2 的同时播放缓冲区 1。然后在填充buffer1的同时播放buffer2,依此类推。