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


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

……で,このままだとどうみても,同時に鳴らすことができません
チャンネルを指定する再生方法があったので,試してみた
#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_Chunk *music;
Mix_Chunk *music2;
int channel;
int channel2;

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

//SDL_mixer:再生
channel = Mix_PlayChannel(-1, music, -1);
channel = Mix_PlayChannel(-1, music2, -1);

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

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

//SDL_mixer:停止
Mix_HaltChannel(channel);
Mix_HaltChannel(channel2);

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

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

//終了処理
SDL_Quit();
}
同時に鳴りました
関数名が LoadWAVなので冗談でやってみただけだったのですが(*'-')


TOPプログラマ専用Windows gcc SDL