【问题标题】:SDL_mixer stop playing music on certain eventSDL_mixer 停止在某些事件上播放音乐
【发布时间】:2015-11-26 01:57:49
【问题描述】:

如果某个点在范围内,我的程序需要停止播放声音,因为我有一个带有函数 run() 的类,它在单独的线程上运行并使用 SDL.hSDL_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 时,它​​会打印“停止声音”但声音仍在播放,这似乎是什么问题?

【问题讨论】:

    标签: c++ sdl sdl-mixer


    【解决方案1】:

    Mix_HaltChannel 用于在以Mix_PlayChannel 启动后停止Mix_Chunk

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多