目次 - SDL 3.0 API(機能別) - 再生と録音 - SDL_GetAudioDeviceFormat

SDL_GetAudioDeviceFormat

オーディオデバイスの現在の形式を得る

ヘッダ

SDL3/SDL_audio.h

構文

bool SDL_GetAudioDeviceFormat(SDL_AudioDeviceID devid, SDL_AudioSpec *spec, int *sample_frames);

引数

SDL_AudioDeviceIDdevid調査するオーディオデバイスのインスタンス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);

バッファサイズは低レベルな部分でオーディオ再生のタイミングを調整したい場合のみ役立つ. ほとんどのアプリケーションには必要ない.

スレッドセーフ

この関数はどのスレッドからも安全に呼べる.

バージョン

SDL 3.2.0以降

SDL Wikiへのリンク

SDL_GetAudioDeviceFormat - SDL Wiki