Home | Lesson | Game | Tool | Link

C04.SDL_Mixer 簡易リファレンス

SDL_Mixerの簡易リファレンスを紹介します。



使用可能フォーマット
効果音:WAVE/AIFF/RIFF/OGG/VOC
BGM  :WAVE/MOD/MIDI/OGG/MP3

英語版ドキュメント
Documentation:フレームあり
Documentation:フレームなし

関数一覧
概要
Mix_Linked_Version		SDL_mixerのバージョン情報を取得します。
Mix_OpenAudio		SDL_MixerAPIの初期化を行います。
Mix_CloseAudio		SDL_MixerAPIを終了します。
Mix_SetError		エラー文字列をセットします。
Mix_GetError		現在のエラー文字列を取得します。
Mix_QuerySpec		現在開いているAUDIOフォーマット情報を問い合わせます。
Mix_Linked_Version
const SDL_version *Mix_Linked_Version()
void MIX_VERSION(SDL_version *compile_version)

SDL_mixerのバージョン情報を取得します。

compile_version	:バージョン情報を格納します。

Mix_OpenAudio int Mix_OpenAudio(int frequency, Uint16 format, int channels, int chunksize) SDL_MixerAPIの初期化を行います。 事前にSDL_INIT_AUDIOを指定してSDL_Init()を実行しておく必要があります。 frequency :サンプリング周波数を指定します。 format :波形フォーマットを指定します。 channels :チャネル数を指定します。(0:モノラル、1:ステレオ) chunksize :サウンドバッファサイズを指定します。
Mix_CloseAudio void Mix_CloseAudio() SDL_MixerAPIを終了します。
Mix_SetError void Mix_SetError(const char *fmt, ...) SDL_SetError()と同じで、エラー文字列をセットします。
Mix_GetError char *Mix_GetError() SDL_GetError()と同じで、現在のエラー文字列を取得します。
Mix_QuerySpec int Mix_QuerySpec(int *frequency, Uint16 *format, int *channels) 現在開いているAUDIOフォーマット情報を問い合わせます。 frequency :AUDIOデバイスの周波数を格納します。 format :AUDIOデバイスのフォーマットを格納します。 channels :AUDIOデバイスのチャネルを格納します。(0:モノラル、1:ステレオ)

効果音
Mix_LoadWAV		効果音を読み込みます。
Mix_LoadWAV_RW		自動で終了/開放するかを指定して、効果音を読み込みます。
Mix_QuickLoad_WAV		メモリ上のWAVEファイルを呼び出す?
Mix_QuickLoad_RAW		メモリ上のWAVEファイルを呼び出す?
Mix_VolumeChunk		効果音のボリュームを調整します。
Mix_FreeChunk		効果音を開放します。
Mix_LoadWAV
Mix_Chunk *Mix_LoadWAV(char *file)

効果音を読み込みます。ファイルで指定できるのは、WAVE/AIFF/RIFF/OGG/VOCです。
これは、Mix_LoadWAV_RW(SDL_RWFromFile(file, "rb"), 1)と同じ処理をしています。

file		:ファイル名

Mix_LoadWAV_RW Mix_Chunk *Mix_LoadWAV_RW(SDL_RWops *src, int freesrc) 自動で終了/開放するかを指定して、効果音を読み込みます。 src :ソース(ファイル)名 freesrc :自動で終了/開放するか(0:自動終了しない、1:自動終了する)
Mix_QuickLoad_WAV Mix_Chunk *Mix_QuickLoad_WAV(Uint8 *mem) メモリ上のWAVEファイルを呼び出す? mem :WAVEファイルを格納するバッファ。
Mix_QuickLoad_RAW Mix_Chunk *Mix_QuickLoad_RAW(Uint8 *mem) メモリ上のWAVEファイルを呼び出す? mem :WAVEファイルを格納するバッファ。
Mix_VolumeChunk int Mix_VolumeChunk(Mix_Chunk *chunk, int volume) 効果音のボリュームを調整します。 chunk :調整するMix_Chunk(効果音)を指定します。 volume :ボリュームを指定します。(0:最小〜128:最大)
Mix_FreeChunk void Mix_FreeChunk(Mix_Chunk *chunk) 効果音を開放します。 chunk :開放するMix_Chunk(効果音)を指定します。

チャネル
Mix_AllocateChannels	チャネル数をセットします。
Mix_Volume		チャネルのボリュームを指定します。
Mix_PlayChannel		効果音を再生します。
Mix_PlayChannelTimed	指定した時間内だけ効果音を再生します。
Mix_FadeInChannel		フェードインしながら効果音を再生します。
Mix_FadeInChannelTimed	指定した時間内でフェードインしながら効果音を再生します。
Mix_Pause			効果音を一時停止します。
Mix_Resume		一時停止している効果音を再開します。
Mix_HaltChannel		効果音を停止します。
Mix_ExpireChannel		指定した時間後に効果音を停止します。?
Mix_FadeOutChannel		フェードアウト後に効果音を停止します。
Mix_ChannelFinished	チャネルが終了した際に関数を呼び出します。
Mix_Playing		チャネルが再生しているかどうかを取得します。
Mix_Paused		チャネルが一時停止しているかどうかを取得します。
Mix_FadingChannel		チャネルがフェード中かどうか取得します。
Mix_GetChunk		現在再生している効果音を取得します。
Mix_AllocateChannels
int Mix_AllocateChannels(int numchans) 

チャネル数をセットします。

numchans		:チャネル数を指定します。

Mix_Volume int Mix_Volume(int channel, int volume) チャネルのボリュームを指定します。 channel :ボリュームを設定するチャネル番号を指定します。(-1:全てのチャネル) volume :ボリュームを指定します。(0:最小〜128:最大)
Mix_PlayChannel int Mix_PlayChannel(int channel, Mix_Chunk *chunk, int loops) 効果音を再生します。 channel :使用するチャネルを指定します。(-1:空いているチャネルを使用します) chunk :再生する効果音を指定します。 loops :繰り返し回数を指定します。(-1:ループ)
Mix_PlayChannelTimed int Mix_PlayChannelTimed(int channel, Mix_Chunk *chunk, int loops, int ticks) 指定した時間内だけ効果音を再生します。 channel :使用するチャネルを指定します。(-1:空いているチャネルを使用します) chunk :再生する効果音を指定します。 loops :繰り返し回数を指定します。(-1:ループ) ticks :再生する時間をmsで指定します。(-1:時間制限を設けません)
Mix_FadeInChannel int Mix_FadeInChannel(int channel, Mix_Chunk *chunk, int loops, int ms) フェードインしながら効果音を再生します。 channel :使用するチャネルを指定します。(-1:空いているチャネルを使用します) chunk :再生する効果音を指定します。 loops :繰り返し回数を指定します。(-1:ループ) ms :フェードインするまでの時間をmsで指定します。
Mix_FadeInChannelTimed int Mix_FadeInChannelTimed(int channel, Mix_Chunk *chunk, int loops, int ms, int ticks) 指定した時間内でフェードインしながら効果音を再生します。 channel :使用するチャネルを指定します。(-1:空いているチャネルを使用します) chunk :再生する効果音を指定します。 loops :繰り返し回数を指定します。(-1:ループ) ticks :再生する時間をmsで指定します。(-1:時間制限を設けません)
Mix_Pause void Mix_Pause(int channel) 効果音を一時停止します。 channel :一時停止する効果音のチャネルを指定します。(-1:全てのチャネルを指定します)
Mix_Resume void Mix_Resume(int channel) 一時停止している効果音を再開します。 channel :再開するチャネルを指定します。(-1:全てのチャネルを指定します)
Mix_HaltChannel int Mix_HaltChannel(int channel) 効果音を停止します。 channel :停止する効果音のチャネルを指定します。(-1:全てのチャネルを指定します)
Mix_ExpireChannel int Mix_ExpireChannel(int channel, int ticks) 指定した時間後に効果音を停止します。? channel :停止する効果音のチャネルを指定します。(-1:全てのチャネルを指定します) ticks :停止するまでの時間をmsで指定します。
Mix_FadeOutChannel int Mix_FadeOutChannel(int channel, int ms) フェードアウト後に効果音を停止します。 channel :フェードアウトするチャネルを指定します。(-1:全てのチャネルを指定します) ms :フェードアウトするまでの時間をmsで指定します。
Mix_ChannelFinished void Mix_ChannelFinished(void (*channel_finished)(int channel)) チャネルが終了した際に関数を呼び出します。 channel_finished :終了した際に呼ばれる関数を指定します。
Mix_Playing int Mix_Playing(int channel) チャネルが再生しているかどうかを取得します。 channel :状態を取得するチャネルを指定します。(-1:何チャネル再生しているを問い合わせます)
Mix_Paused int Mix_Paused(int channel) チャネルが一時停止しているかどうかを取得します。 channel :状態を取得するチャネルを指定します。(-1:何チャネル一時停止しているか問い合わせます)
Mix_FadingChannel Mix_Fading Mix_FadingChannel(int which) チャネルがフェード中かどうか取得します。 which :状態を取得するチャネルを指定します。(-1は無効です)
Mix_GetChunk Mix_Chunk *Mix_GetChunk(int channel) 現在再生している効果音を取得します。 channel :取得するチャネルを指定します。(-1は無効です)

グループ
Mix_ReserveChannels	チャネルの予約(デフォルトグループで使用されるのを停止)します。?
Mix_GroupChannel		チャネルをグループに追加、グループからチャネルを削除します。
Mix_GroupChannels		複数のチャネルをグループに追加、グループからチャネルを削除します。?
Mix_GroupCount		グループの中のチャネル数を取得します。
Mix_GroupAvailable		グループの中で使われていないチャネルを取得します。
Mix_GroupOldest		グループの中で古いチャネルを取得します。
Mix_GroupNewer		グループの中で新しいチャネルを取得します。
Mix_FadeOutGroup		時間をかけてグループをフェードアウトさせます。
Mix_HaltGroup		グループを停止させます。
Mix_ReserveChannels
int Mix_ReserveChannels(int num) 

チャネルの予約(デフォルトグループで使用されるのを停止)します。?

num		:予約するチャネル数を指定します。

Mix_GroupChannel int Mix_GroupChannel(int which, int tag) チャネルをグループに追加、グループからチャネルを削除します。 which :タグを指定するチャネル番号を指定します。 tag :グループ番号を指定します。(-1:デフォルトグループ)
Mix_GroupChannels int Mix_GroupChannels(int from, int to, int tag) 複数のチャネルをグループに追加、グループからチャネルを削除します。? from :最初のチャネル番号を指定します。 to :最後のチャネル番号を指定します。 tag :グループ番号を指定します。
Mix_GroupCount int Mix_GroupCount(int tag) グループの中のチャネル数を取得します。 tag :グループ番号を指定します。(-1:全てのチャネル)
Mix_GroupAvailable int Mix_GroupAvailable(int tag) グループの中で使われていないチャネルを取得します。 tag :グループ番号を指定します。(-1:全てのチャネルを検索)
Mix_GroupOldest int Mix_GroupOldest(int tag) グループの中で古いチャネルを取得します。 tag :グループ番号を指定します。(-1:全てのチャネルを検索)
Mix_GroupNewer int Mix_GroupNewer(int tag) グループの中で新しいチャネルを取得します。 tag :グループ番号を指定します。(-1:全てのチャネルを検索)
Mix_FadeOutGroup int Mix_FadeOutGroup(int tag, int ms) 時間をかけてグループをフェードアウトさせます。 tag :フェードアウトするグループを指定します。 ms :フェードアウトするまでの時間をmsで指定します。
Mix_HaltGroup int Mix_HaltGroup(int tag) グループを停止させます。 tag :停止させるグループを指定します。

MUSIC
Mix_LoadMUS		BGMを読み込みます。
Mix_FreeMusic		BGMを開放します。
Mix_PlayMusic		BGMを再生します。
Mix_FadeInMusic		フェードインさせながらBGMを再生します。
Mix_FadeInMusicPos		フェードインさせながらBGMを再生します。
Mix_HookMusic		他のMUSICプレイヤーへフックします。
Mix_VolumeMusic		MUSICのボリュームを設定します。
Mix_PauseMusic		MUSICを一時停止します。
Mix_ResumeMusic		一時停止されているMUSICの再生を再開します。
Mix_RewindMusic		巻き戻してMUSICを再生します。
Mix_SetMusicPosition	MUSICを再生する位置を指定します。
Mix_SetMusicCMD		MUSICを再生するために外部コマンドを指定します。
Mix_HaltMusic		MUSICの再生を停止します。
Mix_FadeOutMusic		フェードアウトさせながらMUSICを停止します。
Mix_HookMusicFinished	MUSIC再生が終了した際に関数を呼び出します。
Mix_GetMusicType		MUSICの種類を取得します。
Mix_PlayingMusic		MUSICが再生中かどうか確認します。
Mix_PausedMusic		MUSICが一時停止かどうか確認します。
Mix_FadingMusic		MUSICがフェード中かどうか確認します。
Mix_GetMusicHookData	Mix_HookMusicでのフック場所を取得します。
Mix_LoadMUS
Mix_Music *Mix_LoadMUS(const char *file) 

BGMを読み込みます。

file		:BGMのファイル名を指定します。使用可能なBGMはWAVE/MOD/MIDI/OGG/MP3です。

Mix_FreeMusic void Mix_FreeMusic(Mix_Music *music) BGMを開放します。 music :開放するBGMを指定します。
Mix_PlayMusic int Mix_PlayMusic(Mix_Music *music, int loops) BGMを再生します。 music :再生するBGMを指定します。 loops :再生する回数を指定します。(-1:ループ)
Mix_FadeInMusic int Mix_FadeInMusic(Mix_Music *music, int loops, int ms) フェードインさせながらBGMを再生します。 music :再生するBGMを指定します。 loops :再生する回数を指定します。(-1:ループ) ms :フェードインさせるまでの時間をmsで指定します。
Mix_FadeInMusicPos int Mix_FadeInMusicPos(Mix_Music *music, int loops, int ms, double position) フェードインさせながらBGMを再生します。 music :再生するBGMを指定します。 loops :再生する回数を指定します。(-1:ループ) ms :フェードインさせるまでの時間をmsで指定します。 position :再生位置を指定します。
Mix_HookMusic void Mix_HookMusic(void (*mix_func)(void *udata, Uint8 *stream, int len), void *arg) 他のMUSICプレイヤーへフックします。 mix_func :他のプレイヤーへの関数を指定します。 arg :関数で使用する引数を指定します。
Mix_VolumeMusic int Mix_VolumeMusic(int volume) MUSICのボリュームを設定します。 volume :ボリュームを指定します。(0:最小〜128:最大)
Mix_PauseMusic void Mix_PauseMusic() MUSICを一時停止します。
Mix_ResumeMusic void Mix_ResumeMusic() 一時停止されているMUSICの再生を再開します。
Mix_RewindMusic void Mix_RewindMusic() 巻き戻してMUSICを再生します。
Mix_SetMusicPosition int Mix_SetMusicPosition(double position) MUSICを再生する位置を指定します。 position :再生位置を指定します。
Mix_SetMusicCMD int Mix_SetMusicCMD(const char *command) MUSICを再生するために外部コマンドを指定します。 command :システムコマンドを指定します。
Mix_HaltMusic int Mix_HaltMusic() MUSICの再生を停止します。
Mix_FadeOutMusic int Mix_FadeOutMusic(int ms) フェードアウトさせながらMUSICを停止します。 ms :フェードアウトさせるまでの時間をmsで指定します。
Mix_HookMusicFinished void Mix_HookMusicFinished(void (*music_finished)()) MUSIC再生が終了した際に関数を呼び出します。 music_finished :終了した際に呼ばれる関数を指定します。
Mix_GetMusicType Mix_MusicType Mix_GetMusicType(const Mix_Music *music) MUSICの種類を取得します。 music :タイプを取得したいMUSICを指定します。
Mix_PlayingMusic int Mix_PlayingMusic() MUSICが再生中かどうか確認します。
Mix_PausedMusic int Mix_PausedMusic() MUSICが一時停止かどうか確認します。
Mix_FadingMusic Mix_Fading Mix_FadingMusic() MUSICがフェード中かどうか確認します。
Mix_GetMusicHookData void *Mix_GetMusicHookData() Mix_HookMusicでのフック場所を取得します。

エフェクト
Mix_RegisterEffect		チャネルへのプロセッサのフックをします。?
Mix_UnregisterEffect	チャネルへのプロセッサのフックを解除します。?
Mix_UnregisterAllEffects	チャネルへの全てのプロセッサのフックを解除します。?
Mix_SetPostMix		postmixプロセッサへのフックをします。?
Mix_SetPanning		ステレオのパンニングを指定します。
Mix_SetDistance		ボリュームの減衰距離を指定します。
Mix_SetPosition		パンニングと距離を指定します。
Mix_SetReverseStereo	ステレオの左右を入れ替えます。
Mix_RegisterEffect
int Mix_RegisterEffect(int chan, Mix_EffectFunc_t f, Mix_EffectDone_t d, void *arg)

チャネルへのプロセッサのフックをします。?

chan		:fとdへのチャネル番号を指定します。
f		:エフェクトプロセッサへの関数を指定します。
d		:終了時の関数を指定します。
arg		:関数への引数を指定します。

Mix_UnregisterEffect int Mix_UnregisterEffect(int channel, Mix_EffectFunc_t f) チャネルへのプロセッサのフックを解除します。? channel :チャネル番号を指定します。 f :解除する関数を指定します。
Mix_UnregisterAllEffects int Mix_UnregisterAllEffects(int channel) チャネルへの全てのプロセッサのフックを解除します。? channel :チャネル番号を指定します。
Mix_SetPostMix void Mix_SetPostMix(void (*mix_func)(void *udata, Uint8 *stream, int len), void *arg) postmixプロセッサへのフックをします。? mix_func :postmixプロセッサへの関数を指定します。 arg :関数の引数を指定します。
Mix_SetPanning int Mix_SetPanning(int channel, Uint8 left, Uint8 right) ステレオのパンニングを指定します。 channel :チャネル番号を指定します。 left :レフトチャネルのボリューム(0:最小〜255最大) right :ライトチャネルのボリューム(0:最小〜255最大)
Mix_SetDistance int Mix_SetDistance(int channel, Uint8 distance) ボリュームの減衰距離を指定します。 channel :チャネル番号を指定します。 distance :距離を指定します。(0:近い〜255遠い)
Mix_SetPosition int Mix_SetPosition(int channel, Sint16 angle, Uint8 distance) パンニングと距離を指定します。 channel :チャネル番号を指定します。 angle :角度を指定します。(0:前、90:右、180:後、270:左) distance :距離を指定します。(0:近い〜255遠い)
Mix_SetReverseStereo int Mix_SetReverseStereo(int channel, int flip) ステレオの左右を入れ替えます。 channel :チャネル番号を指定します。 flip :有効にするには0以外を指定します。