目次 - API(機能別) - 再生と録音 - SDL_AudioStatus

SDL_AudioStatus

オーディオデバイスの状態の列挙体

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);  // 「停止中」が表示される
}

詳細

開いたデバイスは, 通常は常に再生中か一時停止中である. デバイスがエラーを起こすといつでも停止中になる. デバイスを閉じた場合も停止中になる. 開いていない, または不明なIDのデバイスの状態を求めると, 停止中が報告される.

関連項目(関数)

SDL_GetAudioDeviceStatus

SDL Wikiへのリンク

SDL_AudioStatus - SDL Wiki