2011年3月18日金曜日

SDL_Mixer、簡単過ぎワロタ

たまには(?)プログラムの話でも書きましょう。SDL_Mixerの話だけど。

SDLで音楽を扱おうと思ったら「SDL_Mixer」を使うのがデファクトスタンダードになってるので、自分も使ってます。

長らくSDL_Mixerは「MP3とOgg読めるよ!^^」と詐欺詠ってってましたが、どうやらいつのまにか本当に読めるようになってました。
(今までは再コンパイルの必要あり)

バージョンは1.2.7以上が必要みたいです。
(この記事を書いている最新はバージョンは1.2.11)
↓ここから最新版をどうぞ
http://www.libsdl.org/projects/SDL_mixer/


【使い方】
※ゲームでは一般的に無限ループを用いているので、その記述でいきます。
また、自分はC/C++での記述をします。
(どちらかというとC寄りのコーディングなのでご了承を)

【ソース例】
※適当な場所に書いて下さい。


// 変数宣言
Mix_Music    *music;
Mix_Chunk    *chunk;



// SDL初期化
// ここではSDL_Mixerの初期化だけ。
// ほかの初期化も入れたい場合はパイプ文字で繋げる事!
SDL_Init(SDL_INIT_AUDIO);


// 曲ファイルをロード
// ※MP3もいけるようになった!!
music = Mix_LoadMUS("music.wav");
// 効果音ファイル1をロード
chunk = Mix_LoadWAV("se1.wav");



// 同時発声数を設定
Mix_AllocateChannels(16);


// 曲の再生スタート
// ※無限ループの前に記述する事
Mix_PlayMusic(music,-1);


// 効果音1再生
Mix_PlayChannel( -1,chunk,0 );


<無限ループ はじめ>


<無限ループ おわり>


// ロードした曲を開放
Mix_FreeMusic(music);
// ロードした効果音1を開放

Mix_FreeChunk(chunk);
// SDL_Mixerクローズ
Mix_CloseAudio();

// SDL使用終了
SDL_Quit();

0 件のコメント:

コメントを投稿