XAudio2 流式处理音频数据

流式处理是仅保留内存中播放音频文件的一小部分的过程。 这允许播放大型音频文件(如背景音乐),并且不会占用大量内存。

流式传输音频文件时,其数据以区块的形式从磁盘读取,而不是一次加载整个文件。 流式处理是通过将音频数据异步读取到磁盘缓冲区队列来实现的。 将填充每个缓冲区,然后提交到源语音。 语音播放完缓冲区后,缓冲区将再次可供阅读。 以这种方式循环访问磁盘缓冲区允许在只加载一部分数据时播放大型音频文件。 流式处理代码应放置在单独的线程中,它可以在等待长时间运行的磁盘和音频操作完成时进入睡眠状态。 回调类用于通过在音频操作完成时触发事件来唤醒线程。

有关如何使用 XAudio2 实现流式传输的示例,请参阅 如何:从磁盘流式传输声音

流式处理音频数据

XAudio2 编程指南