首页 > 代码库 > 使用WindowsAPI实现播放PCM音频的方法

使用WindowsAPI实现播放PCM音频的方法

这篇文章主要介绍了使用WindowsAPI实现播放PCM音频的方法,很实用的一个功能,需要的朋友可以参考下
<iframe id="h57167j05x473u2866688" src="http://pos.baidu.com/s?pss=1353x2198&ti=%E4%BD%BF%E7%94%A8WindowsAPI%E5%AE%9E%E7%8E%B0%E6%92%AD%E6%94%BEPCM%E9%9F%B3%E9%A2%91%E7%9A%84%E6%96%B9%E6%B3%95_C%20%E8%AF%AD%E8%A8%80_%E8%84%9A%E6%9C%AC%E4%B9%8B%E5%AE%B6&ps=674x179&drs=3&cpl=0&chi=0&cce=true&cec=gb2312&tlm=1490779267&uc=1366x728&pis=-1x-1&sr=1366x768&ccd=32&cja=true&cmi=0&col=zh-cn&cdo=-1&tcn=1494300087&di=u2866688&dc=2&dcb=___adblockplus&dtm=HTML_POST&tpr=1494300086936&ari=2&ctxant=0&exps=111000&dis=0&ltu=http%3A%2F%2Fwww.jb51.net%2Farticle%2F53860.htm&ltr=%20https%3A%2F%2Fwww.baidu.com%2Flink%3Furl%3DySkxVY5pMglVVuXCSNnjiL6PRl7w8M0Uw3jQrqVXL_6XZIe2dfp7mBX-LOTfwSag%26wd%3D%26eqid%3Dc80afe040000d8430000000659113514&conwid=680&conhei=100" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" align="center,center" width="680" height="100"></iframe>

本文介绍了使用WindowsAPI实现播放PCM音频的方法,同前面一篇使用WindowsAPI获取录音音频的方法原理具有相似之处,这里就不再详细介绍具体的函数与结构体的参数,相同的部分加以省略,只介绍主要的功能部分代码。如下所示:

1. waveOutGetNumDevs

2. waveOutGetDevCaps

3. waveOutOpen

回调函数:

?
1
void CALLBACK PlayCallback(HWAVEOUT hwaveout, UINT uMsg, DWORD dwInstance, DWORD dwParam1, DWORD dwParam2);

4. waveOutPrepareHeader

5. waveOutWrite:执行后立即开始播放,当前缓冲区播放完成会调用回调函数

这里需要注意:

为了能够实现连续播放效果,在第4部需要准备两个或两个以上的播放数据。
感兴趣的朋友可以对比前面的文章手动调试一下本文所述实例。

使用WindowsAPI实现播放PCM音频的方法