以下に SDL コードのスニペットを示します。
SDL_Init(SDL_INIT_VIDEO|SDL_INIT_AUDIO);
atexit(SDL_Quit);
g_pDisplaySurface =
SDL_SetVideoMode(SCREEN_WIDTH,SCREEN_HEIGHT,0,SDL_ANYFORMAT);
g_SpecDesired=new SDL_AudioSpec;
g_SpecObtained=new SDL_AudioSpec;
g_SpecDesired->freq=22050;
g_SpecDesired->format=AUDIO_U8;
g_SpecDesired->channels=1;
g_SpecDesired->samples=8192;
g_SpecDesired->callback=FOSDLAudioCallback;
g_SpecDesired->userdata=NULL;
コールバック関数は
void FOSDLAudioCallback(void* userdata,Uint8* buffer,int len)
{
int index;
printf("LEn is :%d",&len);
for(index=0;index<len;index++)
{
buffer[index]=rand()%256;
}
}
ここでの問題は、チャンネルを 1 または 2 に変更しても、両方のステレオ チャンネルで再生されますか? なぜこのように振る舞うのですか?