如何在我的C游戏中停止播放音频?
我正在用C制作一个游戏,我想从一个音频文件切换到另一个,但我必须等待第一个文件完成播放。有没有办法让第一个马上停止播放 这是我的代码:如何在我的C游戏中停止播放音频?,c,audio,C,Audio,我正在用C制作一个游戏,我想从一个音频文件切换到另一个,但我必须等待第一个文件完成播放。有没有办法让第一个马上停止播放 这是我的代码: void MusicPlayer (){ while (music == true) PlaySound("elevat_loop1.wav" , NULL, SND_FILENAME); while (music == false) PlaySound("silence.wav", NULL, SND_FILEN
void MusicPlayer (){
while (music == true)
PlaySound("elevat_loop1.wav" , NULL, SND_FILENAME);
while (music == false)
PlaySound("silence.wav", NULL, SND_FILENAME);
if (music == true)
MusicPlayer();
}
thread t(MusicPlayer);//I used thread because I want music to play independently
我希望第一个文件停止播放而不必等待。
我尝试使用SND_ASYNC,但如果我这样做,声音将不会播放。可能是在其他线程中执行播放声音,需要时杀死该线程
除此之外
void MusicPlayer (){
while (music == true)
PlaySound("elevat_loop1.wav" , NULL, SND_FILENAME);
while (music == false)
PlaySound("silence.wav", NULL, SND_FILENAME);
if (music == true)
MusicPlayer();
}
不做任何递归,甚至可能是编译器会优化它似乎更好地使用循环
while(music==false){…}
会在音乐恢复为真时伸出援手,所以如果(music==true)
很有可能成为真的,真的需要测试它吗?我解决了它。代码是
void MusicPlayer (){
if (music == true)
PlaySound(TEXT("elevmus.wav"), NULL, SND_LOOP | SND_ASYNC);
while (music == true)
;
if (music == false)
PlaySound("silence.wav", NULL, SND_LOOP | SND_ASYNC);
while (music == false)
;
if (music == true)
MusicPlayer();
}
C、 但是你有东西吗?什么是
Playsound
?我想他指的是mmsystem Playsound。Playsound函数播放给定文件名指定的声音。检查此项:此线程t(MusicLayer)代码>看起来不像C。我使用上一个测试,因为我想返回循环“elevat_loop1.wav”。我尝试使用SND_ASYNC,它应该立即返回,而不是在播放声音时阻塞,但是如果我使用SND_ASYNC,声音将不会播放。