2015-06-06 3 views
-2

Итак, я занимаюсь игрой на ассемблере, и я использую функцию PlaySound() для воспроизведения фоновой песни. Я хочу сделать это после того, как я «умру» в игре, другой звуковой файл начнет воспроизводить звуковой файл и в то же время остановит другую фоновую песню.Воспроизведение звукового файла в masm32 и одновременного остановки другого звукового файла

+1

Вы не предоставили достаточно деталей. Что такое функция PlaySound()? Какая версия Windows (или DOS, я полагаю)? Что вы написали до сих пор? Каким образом он не ведет себя так, как вы ожидаете? –

+0

Я использую win 8 Я написал много кода, потому что его игра. И я запускаю звуковой файл, подобный этому «invoke PlaySound, смещение« имя файла », NULL, SND_ASYNS» – user4825345

+2

Если вы не хотите делиться кодом и объяснять, как он не выполняет то, что вы ожидаете, вы можете что никто здесь не поможет вам. :) –

ответ

1

Прочтите документацию.

PlaySound function

pszSound
Строка, которая определяет воспроизведение звука. Максимальная длина, включая нулевой ограничитель, составляет 256 символов. Если этот параметр равен NULL, любой звук воспроизводимого в данный момент сигнала будет остановлен. Чтобы остановить звук без сигнала, укажите параметр SND_PURGE в параметре fdwSound.

...

fdwSound
Флаги для воспроизведения звука. Определены следующие значения.
...
SND_ASYNC
Звук воспроизводится асинхронно, и PlaySound возвращается сразу после начала звука. Чтобы закончить асинхронно воспроизводимый звуковой сигнал, вызовите PlaySound с pszSound, установленным в NULL.

Так что вам нужно позвонить 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 
+0

Большое спасибо! это сработало ! – user4825345