作業中のゲームのバックグラウンドで音楽を再生しようとしています。SDL2 と SDL-mixer を初めて使用しています。私はそれらを自分でコンパイルし、ファイルをプログラム フォルダーのルートに配置しました (移植性のため)。ゲームを実行すると、サウンドが再生されず、Mix_GetError() が次のエラーを返します。
"Mixer not built with MP3 support"
MP3 ファイルを再生しようとしていますが、OGG やその他の形式で初期化しようとすると同じエラーが発生します。
関係がある場合は、ここに関数があります。
int play_sound(void)
{
int mp3;
Mix_Music *music;
mp3 = MIX_INIT_MP3;
music = NULL;
if (mp3 != Mix_Init(mp3))
return (put_error(Mix_GetError()));
if (Mix_OpenAudio(22050, MIX_DEFAULT_FORMAT, 2, 4096) == -1)
return (-1);
music = Mix_LoadMUS("data/music.mp3");
Mix_PlayMusic(music, -1);
return (0);
}
その特定の問題についてはあまり見つけていませんが、問題はソースからSDL2とSDL-mixerをコンパイルしたことにあると思います。私は何かを忘れたに違いありませんが、よくわかりません...ちなみに、私はOSXを使用しています(まだあまり慣れていません)。
助けてくれてありがとう!
編集/ WAV ファイルは試していません。