int Mix_SetMusicCMD(const char *command)
音楽の再生で使うコマンドラインのプレイヤーを設定する 再生中の音楽は全て停止する. 再生する音楽ファイルはMix_LoadMUSで設定する. このファイル名はコマンドラインの最後に追加される. これにより複数の音楽ファイルを再生できる. このコマンドは, 停止のときSIGTERM, 一時停止のときSIGSTOP, 一時停止解除のときSIGCONTを受け取る. コマンドのプログラムはSDL_mixerの関数が正しく動作するようにこれらのシグナルを処理する必要がある. 外部プレイヤーの場合は, Mix_VolumeMusicは無効で, Mix_GetErrorはエラーコードが設定される. 音楽のボリュームは対応していればプレイヤーのコマンドで設定する必要がある. 音楽プレイヤーのプロセスが終了したとき再びコマンドを呼ぶことでループする. コマンドによる音楽の再生はフォークされたプロセスで行われる. NULLを設定すると内部音楽プレイヤーを使う.
メモ: 外部で再生された音楽はSDL_mixerではミキシングできず, 後処理フックでは扱えない.
メモ: ドライバがオーディオデバイスの複数オープンに対応していない場合, 外部コマンドによる音楽の再生はできない. SDL_mixerがすでにサンプリング音声のためにオーディオデバイスを開いているためである.
メモ: コマンドのない環境もあるため注意する必要がある.
戻り値: 成功のとき0, メモリがないなど失敗のとき-1
// mpg123で音楽を再生する
Mix_Music *music=NULL;
if(Mix_SetMusicCMD("mpg123 -q")==-1) {
perror("Mix_SetMusicCMD");
} else {
// 適当なMP3ファイルを再生する
music=Mix_LoadMUS("music.mp3");
if(music) {
Mix_PlayMusic(music,1);
}
}