Итак, я занимаюсь игрой на ассемблере, и я использую функцию PlaySound()
для воспроизведения фоновой песни. Я хочу сделать это после того, как я «умру» в игре, другой звуковой файл начнет воспроизводить звуковой файл и в то же время остановит другую фоновую песню.Воспроизведение звукового файла в masm32 и одновременного остановки другого звукового файла
ответ
Прочтите документацию.
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
Большое спасибо! это сработало ! – user4825345
Вы не предоставили достаточно деталей. Что такое функция PlaySound()? Какая версия Windows (или DOS, я полагаю)? Что вы написали до сих пор? Каким образом он не ведет себя так, как вы ожидаете? –
Я использую win 8 Я написал много кода, потому что его игра. И я запускаю звуковой файл, подобный этому «invoke PlaySound, смещение« имя файла », NULL, SND_ASYNS» – user4825345
Если вы не хотите делиться кодом и объяснять, как он не выполняет то, что вы ожидаете, вы можете что никто здесь не поможет вам. :) –