1

SDL Mix で、特定の Mix_Music トラックを停止する方法はありますか? 例えば。このようなもの:

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

ありがとう。

4

2 に答える 2

1

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

この情報はすべてドキュメントにあります。

于 2016-12-24T10:19:18.543 に答える
0

それがあなたが求めているものである場合、特定のチャンネルを一時停止するMix_Pauseまたは機能があります。Mix_HaltChannel

于 2016-12-01T07:42:37.270 に答える