Mix_Halt特定曲目?

时间:2016-12-01 02:14:27

标签: c++ sdl sdl-2 sdl-mixer

在SDL Mix中有没有办法停止特定的Mix_Music轨道?例如。像这样的东西:

//music1 = the target music track to halt
if(condition)
{
    Mix_Halt(Music1);
}

感谢。

2 个答案:

答案 0 :(得分:1)

只有一个Mix_Music曲目。 当您开始使用Mix_PlayMusic播放音乐时, 以前播放的音乐将自动停止(可能是淡出)。 如果您想明确停止当前播放的Mix_Music曲目, 你可以使用Mix_HaltMusic

如果要同时控制声音,则应使用Mix_Chunk个对象。 这些是可以在多个channels上播放的样本, 可以单独控制,例如:

Mix_Chunk* chunk1 = Mix_LoadWAV("chunk1.wav");
Mix_Chunk* chunk2 = Mix_LoadWAV("chunk2.wav");

Mix_PlayChannel(1, chunk1, -1); // Play chunk1 on channel 1
Mix_PlayChannel(2, chunk2, -1); // Play chunk2 on channel 2

if (condition)
    // Only halt channel 1, while channel 2 keeps playing
    Mix_HaltChannel(1);

您可以在documentation

中找到所有这些信息

答案 1 :(得分:0)

有一个Mix_PauseMix_HaltChannel函数可以暂停特定频道,如果这就是你所追求的。