我用PlaySound(HInstance,'myWav01');来播放声音,有明显延迟。怎么解决?
如果改用MediaPlayer播放,又有几个明显问题:
1. 声音文件无法放到资源文件中
2. MediaPlayer的FileName属性只能一次设置一个文件名,如果在程序中动态改变文件名以播放不同的声音,也会有明显的延迟。
PlaySound()和MediaPlayer还有一个共同的毛病:假如每按一次按钮发一次声,当操作很快,就会出现发不出声的情况。
能否将声音在程序启动时调入内存,播放时直接从内存中取?
如果改用MediaPlayer播放,又有几个明显问题:
1. 声音文件无法放到资源文件中
2. MediaPlayer的FileName属性只能一次设置一个文件名,如果在程序中动态改变文件名以播放不同的声音,也会有明显的延迟。
PlaySound()和MediaPlayer还有一个共同的毛病:假如每按一次按钮发一次声,当操作很快,就会出现发不出声的情况。
能否将声音在程序启动时调入内存,播放时直接从内存中取?
//上面进行异步播放
是我写错了,我就是用的PlaySound('myWav01',HInstance,SND_RESOURCE);
按我上面的写法,编译肯定通不过,对吧^_^
没有明显改善,实际上我认为硬盘I/O不会比从资源中取来得快。其实我们见到的各种软件都没有这种问题,当有频繁操作时,前面未完的声音会被立刻终止,马上响应后面的操作,没有延迟或发不出声音的情况,或者说感觉不到。他们是怎么做的呢?
这个不会出现时间延迟啊,我的很正常,当声音没有播放完时又执行该函数时,声音是从头开始的,