void Mix_ChannelFinished(void (SDLCALL *channel_finished)(int channel))
channel_finished | 新しい完了通知手段となるコールバック関数 |
// チャネル終了関数を作る
void channelDone(int channel)
{
printf("チャネル %d は再生を終了した¥n", channel);
}
...
// チャネルでの再生が終了したとき呼ばれるコールバック関数を設定する
Mix_ChannelFinished(channelDone);
コールバックはミキサーのオーディオコールバックやMix_HaltChannel()を呼ぶなどの場合に呼ばれる.
コールバック関数は1つの引数, 停止したチャネル番号を持つ.
このコールバック関数の内部でSDL_LockAudio()を呼んではならない. SDL_mixerはあなたのコールバックを呼ぶ前に明確にオーディオをロックしている.
NULLポインタを設定するとコールバックが無効になる.