我用这个函数的时候,WAVEFORMATEX怎么填写啊。
WAVEFORMATEX的wFormatTag我只能填写WAVE_FORMAT_QUERY,或者WAVE_FORMAT_PCM才能
调用waveOutOpen成功。Msdn说
wFormatTag
Waveform-audio format type. Format tags are registered with Microsoft Corporation for many compression algorithms. A complete list of format tags can be found in the MMREG.H header file.
但我填写其他格式的时候,waveOutOpen总返回WAVERR_BADFORMAT错误。求高手指教!!!我想播放一个
采样 8
声道 单声道
采样级别 8kHz
音频格式 CCITT A-Law
的语音文件。waveOutOpen的WAVEFORMATEX该怎么填写。
WAVEFORMATEX的wFormatTag我只能填写WAVE_FORMAT_QUERY,或者WAVE_FORMAT_PCM才能
调用waveOutOpen成功。Msdn说
wFormatTag
Waveform-audio format type. Format tags are registered with Microsoft Corporation for many compression algorithms. A complete list of format tags can be found in the MMREG.H header file.
但我填写其他格式的时候,waveOutOpen总返回WAVERR_BADFORMAT错误。求高手指教!!!我想播放一个
采样 8
声道 单声道
采样级别 8kHz
音频格式 CCITT A-Law
的语音文件。waveOutOpen的WAVEFORMATEX该怎么填写。
解决方案 »
- 如何用delphi操作winrar文件
- 给大家欣赏一个真正的Delphi解释器,可以定义、解释执行所有delphi7.0的Function,Variant,data type,Procedure,并可以动态建立所有Delphi
- 帮忙看一下这个adoquery很奇怪的问题
- 这样的招聘条件是否太高?
- 求《Delphi 7项目开发实践》书盘中的错误信息
- 有谁试过在同一系统下同时安装Delphi6,7?
- 请教一个数据库表结构问题!
- 先祝各位有情人情人节快乐!再祝兄台朗之间新婚愉快!相信应该有网友接收过他的帮助吧!让我们一起祝贺!
- 急人。在delphi 6.0 中如何用query 控件调用一个oracle 8i 的存储过程.
- 如何屏蔽系统错误?代码如下:为何不行?
- 请问如何让系统关机或者重启?
- 请问一个字符传转成16进制怎么做?
WORD wFormatTag; // WAVE_FORMAT_PCM,必须写这个。
WORD nChannels; // 单声道就设1
DWORD nSamplesPerSec; // 每秒采样,CD音质44100就可以了,你要的8000也可以。
DWORD nAvgBytesPerSec; // = nSamplesPerSec * nBlockAlign
WORD nBlockAlign; // = nChannels * wBitsPerSample / 8,因为单位是bytes。
WORD wBitsPerSample; // 分辨率,你要的是8;还可填16。
WORD cbSize; // 保留
} WAVEFORMATEX;
WORD wFormatTag; // WAVE_FORMAT_PCM,必须写这个。
WORD nChannels; // 单声道就设1
DWORD nSamplesPerSec; // 每秒采样,CD音质44100就可以了,你要的8000也可以。
DWORD nAvgBytesPerSec; // = nSamplesPerSec * nBlockAlign
WORD nBlockAlign; // = nChannels * wBitsPerSample / 8,因为单位是bytes。
WORD wBitsPerSample; // 分辨率,你要的是8;还可填16。
WORD cbSize; // 保留
} WAVEFORMATEX;由于我要播放的文件不是WAVE_FORMAT_PCM格式所以填写WAVE_FORMAT_PCM播放的时候有很大的噪音,
后来,我修改为
waveOutOpen 的第二个参数为wave_mapper行了.恶梦.....