mix_halt特定轨道

Mix_Halt specific tracks?

本文关键字:轨道 halt mix      更新时间:2023-10-16

在sdl混合物中,有没有办法停止特定的mix_music轨道?例如。这样的东西:

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

谢谢。

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

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

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);

您可以在文档中找到所有这些信息。

有一个Mix_PauseMix_HaltChannel函数,如果您是您追求的话,可以暂停特定的通道。