C++ SDL_混音器在某些事件中停止播放音乐
如果某个点在范围内,我的程序需要停止播放声音,因为我有一个函数为C++ SDL_混音器在某些事件中停止播放音乐,c++,sdl,sdl-mixer,C++,Sdl,Sdl Mixer,如果某个点在范围内,我的程序需要停止播放声音,因为我有一个函数为run()的类,该函数在单独的线程上运行,并使用SDL.h和SDL\u mixer.h播放声音: void SoundCheck::run() { Mix_PlayMusic(music, 1); while(1) { if(normalize(sound[0], range_->getPos())) { printf("stop sound\n
run()
的类,该函数在单独的线程上运行,并使用SDL.h
和SDL\u mixer.h
播放声音:
void SoundCheck::run()
{
Mix_PlayMusic(music, 1);
while(1)
{
if(normalize(sound[0], range_->getPos()))
{
printf("stop sound\n");
Mix_HaltChannel(-1);
}
sleep(1);
}
}
但是当
如果条件返回true,它会打印“停止声音”,但声音仍在播放,这似乎是什么问题呢?混合播放频道用于在使用混合播放频道启动后停止混合块
要在使用Mix\u PlayMusic
启动后停止Mix\u音乐
,必须使用Mix\u HaltMusic