首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Windows Mobile >

waveOutWrite 参数有关问题

2012-01-31 
waveOutWrite 参数问题MMRESULT waveOutWrite(HWAVEOUT hwo,LPWAVEHDR pwh,UINT cbwh)hwo这个参数要怎么

waveOutWrite 参数问题
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 
你可以看看这两个,或许对你有帮助,我也正看这个东东

热点排行