基于Winmm库的音频采集

Winmm库提供的音频采集接口比较底层,可以直接获取和播放wave数据。其主要流程如下:
采集
1. waveInOpen()
2. waveInStart()
3. waveInPrepareHeader()
4. waveInAddBuffer()
5. waveInUnprepareHeader()
6. waveInStop()
7. waveInReset()
8. waveInClose()
如果是不停的采集,则循环执行3~5。该接口采用一种回调的工作方式,在AddBuffer调用应用中传递给内核一个用户开辟的缓冲区,当数据填满后内核会通过回调函数通知应用。只是为何要有PrepareHeader和UnprepareHeader这两个调用一直不太明白,估计是为了锁住缓冲区。

播放
1. waveOutOpen()
2. waveOutPrepareHeader()
3. waveOutWrite()
4. waveOutUnprepareHeader()
5. waveOutClose()
如果是循环播放,则不断执行2~4。在播放中没有start,stop这样的函数,不过还是有回调过程,提示用户write操作的完成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值