2015-11-25 48 views
0

我的程序需要停止播放聲音,如果某些點在範圍內,我與功能run()運行在單獨的線程類和播放聲音使用SDL.hSDL_mixer.hSDL_mixer停止播放音樂上的某些事件

void SoundCheck::run() 
{ 
    Mix_PlayMusic(music, 1); 
    while(1) 
    { 
     if(normalize(sound[0], range_->getPos())) 
     { 

      printf("stop sound\n"); 
      Mix_HaltChannel(-1); 
     } 
     sleep(1); 

    } 
} 

if條件返回true時打印「停止聲音」,但聲音仍然播放,似乎是什麼問題?

回答

2

Mix_HaltChannel用於在以Mix_PlayChannel開始之後停止Mix_Chunk

要在Mix_PlayMusic啓動後停止Mix_Music,必須使用Mix_HaltMusic

相關問題