渲染音频流(WASAPI / WINAPI)

Posted

技术标签:

【中文标题】渲染音频流(WASAPI / WINAPI)【英文标题】:rendering an audio stream (WASAPI / WINAPI ) 【发布时间】:2011-03-21 19:59:26 【问题描述】:

我目前正在阅读 MSDN 的文档以将流渲染到音频渲染器.. 或者换句话说,从麦克风播放我捕获的数据。

http://msdn.microsoft.com/en-us/library/dd316756%28v=vs.85%29.aspx

这个例子提供了例子。

我现在的问题是我无法真正理解项目流程。 我目前有一个不同的类来存储我从捕获过程中获得的以下参数。 当程序从麦克风捕获流式音频数据时,这些参数将不断重写。

BYTE data;
UINT32 bufferframecount;
DWORD flag;
WAVEFORMATEX *pwfx;

我的问题是, loadData() 函数是如何工作的。 是否假设从捕获过程中获取我正在编写的参数? 程序如何将数据发送到音频渲染器,并在我的扬声器中播放。

【问题讨论】:

【参考方案1】:

loadData() 函数填充 pData 指向的音频。该示例对音频源进行了抽象,因此这可以是从 .wav 文件到您已经捕获的麦克风音频的任何内容。

因此,如果您尝试从该示例构建,我将实现 MyAudiosource 类,并让它在调用 loadData() 时从文件中读取 PCM 或浮动样本。然后,如果您运行该程序,它应该通过扬声器播放文件中的音频。

【讨论】:

以上是关于渲染音频流(WASAPI / WINAPI)的主要内容,如果未能解决你的问题,请参考以下文章

尝试使用 Win32 WASAPI C++ 中的“捕获流”创建 wav 文件

使用 WASAPI 录制音频流

使用 wasapi 渲染音频的问题

通过WinAPI播放PCM声音

Core Audio (WASAPI) 缓冲区事件计时

修改系统卷时如何修改 WASAPI 环回捕获卷?