MMRESULT waveOutWrite(
HWAVEOUT hwo,
LPWAVEHDR pwh,
UINT cbwh
);
hwo这个参数要怎么来填充,是利用waveOutOpen这个函数的第一个参数吗?
还有 pwh这个参数是WAVEHDR的指针,但是WAVEHDR这个结构体的第一个参数lpDataa怎么赋值?
用播放WAV文件的源码贴也行,谢谢了!
------解决方案--------------------
http://www.vckbase.com/document/viewdoc/?id=904
还有
http://download.csdn.net/source/146056
你可以看看这两个,或许对你有帮助,我也正看这个东东
------解决方案--------------------
lpData是一个指针,指向音频数据缓冲区(就是你要播放的那些音频数据),dwBufferLength表示缓冲区字节长度。至少要有三个缓冲区,一个用于播放(正在播放)、一个用于处理(填充数据)、一个用于等待。如果是三个以上,多余缓冲区的用于等待。
------解决方案--------------------
要播放音频首先要用waveOutOpen初始化音频设备,同时创建WAVEHDR类型变量用于存放音频数据
播放的时候把音频块数据(就是PCM格式的音频放入到WAVEHDR类型变量里)
然后调用waveOutPrepareHeader和waveOutWrite来播放,并响应WOM_DONE消息
退出时释放WAVEHDR变量并用waveOutClose来关闭设备
具体可以参照一个“双缓冲播放音频”的例子,网上很多的
------解决方案--------------------
http://download.csdn.net/source/1910143
我上传了前段时间写的一段程序,采样率8000Hz,样本16位,单声道,从文件tmp.wav读PCM音频数据直接播放,没有wav文件头,如果有文件头,你可以从第45字节开始读取,一般前面44字节是文件头部,下面是我搜集的一些资料。注意:这是用窗体播放的,如果用线程播放,那还有一些其它问题要考虑(如:如果缓冲区的数据还没有播放完,这时调用了waveOutClose将不会返回,直接死锁,我现在的做法是Sleep一段时间,再waveOutClose)。
------解决方案--------------------
顶。。。。。。。。。。。。。。。。。。。。。。。。。。。。
------解决方案--------------------
要播放音频首先要用waveOutOpen初始化音频设备,同时创建WAVEHDR类型变量用于存放音频数据
播放的时候把音频块数据(就是PCM格式的音频放入到WAVEHDR类型变量里)
然后调用waveOutPrepareHeader和waveOutWrite来播放,并响应WOM_DONE消息
退出时释放WAVEHDR变量并用waveOutClose来关闭设备
具体可以参照一个“双缓冲播放音频”的例子,网上很多的
------解决方案--------------------
http://www.vckbase.com/document/viewdoc/?id=904
还有
http://download.csdn.net/source/146056
你可以看看这两个,或许对你有帮助,我也正看这个东东