在masm32中播放声音文件并同时停止其他声音文件

时间:2015-06-06 00:09:32

标签: winapi assembly x86 masm32 playsound

所以我正在使用汇编语言进行游戏,我正在使用PlaySound()函数来播放背景歌曲。在我" die"之后我想这样做在游戏中,另一个声音文件将开始播放声音文件,同时将停止其他背景歌曲。

1 个答案:

答案 0 :(得分:1)

阅读文档。

PlaySound function

  

pszSound
  一个字符串,指定要播放的声音。最大长度(包括空终止符)为256个字符。 如果此参数为NULL,则任何当前播放的波形声音都将停止。要停止非波形声音,请在fdwSound参数中指定SND_PURGE。

     

...

     

fdwSound
  用于播放声音的标志。定义了以下值   ...
  SND_ASYNC
  声音以异步方式播放,PlaySound在开始播放后立即返回。 要终止异步播放的波形声音,请在pszSound设置为NULL的情况下调用PlaySound。

所以你需要拨打PlaySound()三次 - 一个用于启动背景音乐,一个用于停止它,另一个用于播放下一个音色。

invoke PlaySound,offset "the name of the bkgnd file",NULL,SND_ASYNC
...
invoke PlaySound,NULL,NULL,SND_ASYNC
invoke PlaySound,offset "the name of the other file",NULL,SND_ASYNC