2

如果某个点在范围内,我的程序需要停止播放声音,因为我有一个函数类,run()它在单独的线程上运行并使用 and 播放SDL.h声音SDL_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);

    }
}

但是当if条件返回 true 时,它​​会打印“停止声音”但声音仍在播放,这似乎是什么问题?

4

1 回答 1

4

Mix_HaltChannel用于Mix_Chunk在开始后停止 a Mix_PlayChannel

Mix_Music在启动后停止Mix_PlayMusic,必须使用Mix_HaltMusic.

于 2015-11-25T17:57:49.963 回答