bool SDL_GetAudioDeviceFormat(SDL_AudioDeviceID devid, SDL_AudioSpec *spec, int *sample_frames);
| SDL_AudioDeviceID | devid | 調査するオーディオデバイスのインスタンスID |
| SDL_AudioSpec * | spec | デバイスの詳細情報の代入先へのポインタ |
| int * | sample_frames | デバイスのバッファサイズ(フレーム数)の代入先へのポインタ. NULLも可 |
(bool) 成功のとき真, 失敗のとき偽を戻す. SDL_GetError()を呼んで詳細を知ることができる.
オープンされたデバイスの場合, この関数はデバイスが現在使用している形式を報告する. まだオープンしていないデバイスの場合, この関数はデバイスが推奨する形式(または, 適切なデフォルト)を報告する.
SDL_AUDIO_DEVICE_DEFAULT_PLAYBACKまたはSDL_AUDIO_DEVICE_DEFAULT_RECORDINGを指定することもできる. これはオープンする前にシステムが推奨するデバイスの適切な形式を得る場合に便利である.
この関数で現在のデバイスのバッファサイズを得ることもできる. これは, サンプルフレーム数単位で, SDLが物理的なハードウェア対してチャンクごとに与えるデータの量を表している. 次の式で音声のミリ秒に変換できる:
ms = (int) ((((Sint64) frames) * 1000) / spec.freq);
バッファサイズは低レベルな部分でオーディオ再生のタイミングを調整したい場合のみ役立つ. ほとんどのアプリケーションには必要ない.
この関数はどのスレッドからも安全に呼べる.