Nanashi-softプログラマ専用Windows gcc SDL


◇Windowsでgcc+SDL -oggを再生したい(2-

単純に再生ソースを書いてみる
SDL_mixerのあるコメント部分が専用記述です
#include <SDL.h>
#include <SDL_mixer.h> //SDL_mixerヘッダ

int main(int args,char *argp[]){
SDL_Surface *screen;
SDL_Event event;

//初期化
if(SDL_Init(SDL_INIT_VIDEO|SDL_INIT_AUDIO) < 0){
return -1;
}
screen=SDL_SetVideoMode(854,480,32,SDL_HWSURFACE);
if(screen == NULL){
SDL_Quit();
return -1;
}

//SDL_mixer:ライブラリ開始
Mix_OpenAudio(44100, MIX_DEFAULT_FORMAT, 2, 4096);

//SDL_mixer:変数定義
Mix_Music *music;

//SDL_mixer:サウンドファイルのロード
music = Mix_LoadMUS("test.ogg");

//SDL_mixer:再生
Mix_PlayMusic(music, 0);

//メインループ
int done = 0;
while(done == 0){
if(SDL_PollEvent(&event)){
//最初に常にシステム終了記述をする
if(event.type == SDL_QUIT){
done= 1;
}
}

SDL_Delay(16); //CPUを一旦開放
}

//SDL_mixer:停止
Mix_HaltMusic();

//SDL_mixer:サウンド開放
Mix_FreeMusic(music);

//SDL_mixer:ライブラリ終了
Mix_CloseAudio();

//終了処理
SDL_Quit();
}
これを testogg2.cで保存してコンパイルします
$ gcc -O0 -o testogg2 testogg2.c `sdl-config --cflags --libs` -DSDL -lSDL_mixer

そして,実行するとフリーズしました(ぁ
試行錯誤の末,普通にエクスプローラーから起動すれば動くことがわかりました
まぁ,Windowsではそういう実行しかしませんから,これでいいだろうと(*'-')

exeを実行するには,ランタイムライブラリが必要です

http://www.libsdl.org/projects/SDL_mixer/
Binary:
Win32
SDL_mixer-1.2.11-win32.zipをダウンロード

oggの再生に必要なファイルは,以下のファイルが必要でした
SDL_mixer.dll
libogg-0.dll
libvorbis-0.dll
libvorbisfile-3.dll

これらと,コンパイル時と同じ SDLバージョンの SDL.dllを,まとめて exeと同一フォルダに放り込むと起動します
また,これらのライブラリは LGPLライセンスですので,このまま同梱して配布可能です


TOPプログラマ専用Windows gcc SDL