最近用windows底层API函数作为我播放声音的函数。程序开发好后,给别人使用。不就就反馈说在使用一段时间(大概30分钟)后,就会跳出 waveOut或者wavePrepare, waveUnprepare等API函数就不正常了。导致不能正常的播放声音了。思来想去,检查程序多次,没有发现什么问题。
今天,在看网上房子装修效果图的时候,一同事突然说了句,好整齐呀,两边对的非常齐整。真是一句话点醒梦中人。没错,就是这个问题,没有对齐的问题。 现在网上有很多的使用wave 底层API函数录音和放音的程序,但都忽略了这个细节。那就是,一般来说,播放一个语音文件,有3步,结束播放一个语音文件,也有3步。 这两个3步必须对齐。具体如下
播放语音文件3部曲
waveOutOpen
waveOutPrepareHeader
waveOutWrite
结束播放3部曲
waveOutReset
waveOutUnprepareHeader
waveOutClose
播放3部曲和结束3部曲不能颠倒。 其中 waveOutWrite 和 waveOutReset 对应。 waveOutPrepareHeader和waveOutUnprepareHeader对应, waveOutOpen 和 waveOutClose 对应。
关系和位置不要颠倒了。
评论