SDL_AUDIO_STOPPED | 停止中 |
SDL_AUDIO_PLAYING | 再生中 |
SDL_AUDIO_PAUSED | 一時停止 |
void printStatus(SDL_AudioDeviceID dev)
{
switch (SDL_GetAudioDeviceStatus(dev))
{
case SDL_AUDIO_STOPPED: printf("停止中¥n"); break;
case SDL_AUDIO_PLAYING: printf("再生中¥n"); break;
case SDL_AUDIO_PAUSED: printf("一時停止中¥n"); break;
default: printf("???"); break;
}
}
// デバイスは一時停止中から始まる
SDL_AudioDeviceID dev;
SDL_AudioSpec desired;
SDL_AudioSpec obtained;
extern void SDLCALL audio_callback(void *userdata, Uint8 * stream, int len);
SDL_zero(desired);
desired.freq = 44100;
desired.format = AUDIO_F32SYS;
desired.channels = 1;
desired.samples = 4096;
desired.callback = audio_callback;
dev = SDL_OpenAudioDevice(NULL, 0, &desired, &obtained, 0);
if (dev != 0)
{
printStatus(dev); // 「一時停止中」が表示される
SDL_PauseAudioDevice(dev, 0);
printStatus(dev); // 「再生中」が表示される
SDL_PauseAudioDevice(dev, 1);
printStatus(dev); // 「一時停止中」が表示される
SDL_CloseAudioDevice(dev);
printStatus(dev); // 「停止中」が表示される
}