SDL Mix で、特定の Mix_Music トラックを停止する方法はありますか? 例えば。このようなもの:
//music1 = the target music track to halt
if(condition)
{
Mix_Halt(Music1);
}
ありがとう。
Mix_Music
トラックは1つだけです。で音楽の再生を開始すると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_Pause
または機能があります。Mix_HaltChannel