渲染音频流(WASAPI / WINAPI)

发布于 2024-10-24 03:11:55 字数 518 浏览 1 评论 0原文

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

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

此示例提供了示例。

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

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

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

i'm currently reading the documentation of MSDN to render a stream to an audio renderer..
or in other word, to play my captured data from microphone.

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

this example provides example.

My problem now is that i couldn't really understand the project flow.
I currently have a different class storing the below parameters which i obtained from the capture process.
these parameters will be continuously re-written as the program captures streaming audio data from the microphone.

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

My question is,
How does really the loadData() function works.
is it suppose to grab the parameter i'm writing from capture process?
how does the program sends the data to audio renderer, and play it in my speaker.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

有木有妳兜一样 2024-10-31 03:11:55

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

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

The loadData() function fills in audio pointed to by pData. The example abstracts the audio source, so this could be anything from a .wav file to the microphone audio that you already captured.

So, if you are trying to build from that example, I would implement the MyAudioSource class, and have it just read PCM or float samples from a file, whenever loadData() is called. Then, if you run that program, it should play the audio from the file out the speaker.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文