C# WavePlayer / WaveOutWrite

在本文中主要调用WinMm库中导出的waveOutWrite完成

“波形数据块”的播放,当然,播放“波形数据块”的办法很多

如“MCI”、“BASS”、“WMP”、“DirectX Sound”等、

不过为什么我一定要用waveOutWrite呢?可能有人曾经想

“音频解码器”是怎么开发的,那么我可以简单的说一下、

“音频解码器”比如mp3的mpeg audio,我们都知道它是一

压缩格式音频,在Win32中如果需要传送声音到音频设备大概

三种方式,waveOutWrite、mdiStreamOut、DirectXSound

举个例子,假设我们需要让自己的浏览器程序静音那么我们

只需要拦截上面的几个函数,当然DirectXSound稍微麻烦些

需要拦截掉CreateSoundBuffer,DirectSoundCreate两个函数

如果mp3格式的音频文件需要被音频设备输出,那么必须把它

转换成被Win32可以直接转送到音频设备的“波形数据块”,不

直接把mp3音频数据丢到声卡,你会听到“无限的噪音” 这是

音频设备不知道,你传送给它的是什么数据


那么我现在说明如果通过WinMm/Wave传送“波形数据块”到声

卡是怎样的一个过程、首先waveOutOpen打开音频输出设备,

waveOutPrepareHeader准备音频波形数据块头,waveOutWrite

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值