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

SDL_GetNumAudioDevices

組み込まれたオーディオデバイスの数を得る

構文

int SDL_GetNumAudioDevices(int iscapture)

引数

iscapture0のとき再生デバイス, 0でないとき録音デバイスを要求する

戻り値

現在のドライバで使えるデバイスの数, またはデバイスの一覧を得られなかったとき-1を戻す. -1は失敗を意味しない. 詳細を参照すること.

サンプルコード

int i, count = SDL_GetNumAudioDevices(0);
for (i = 0; i < count; ++i) {
    printf("オーディオデバイス %d: %s\n", i, SDL_GetAudioDeviceName(i, 0));
}

詳細

この関数はオーディオサブシステムの初期化に成功した場合のみ有効である.

録音はSDL2.0.4では実装されていないので注意すること. よって, iscaptureは将来用で, 現在は常に0にする必要がある.

この関数はデバイスの一覧を決定できない場合-1を戻す. -1を戻すことは失敗ではない. 例えば, SDLが遠隔のオーディオサーバと対話するとき, インターネット上の全てを一覧にすることはできない. しかし, 指定したホストをSDL_OpenAudioDevice()で開くことはできる.

多くの場合, この関数が0以上の値を戻したとき, 既にデフォルトのデバイス(SDL_OpenAudioDevice()の第1引数がNULL)を開いている.

この関数は利用できるハードウェアを再検索する. ループで毎回呼ばずに, ループの開始時に一度だけ呼ぶ必要がある.

// このようにしてはならない.
// for (int i = 0; i < SDL_GetNumAudioDevices(0); i++)

// 代わりにこうするべきである.
const int count = SDL_GetNumAudioDevices(0);
for (int i = 0; i < count; i++) { /* ここにコードを書く */ }

バージョン

SDL 2.0.0以降

関連項目(関数)

SDL_GetAudioDeviceName
SDL_OpenAudioDevice

SDL Wikiへのリンク

SDL_GetNumAudioDevices - SDL Wiki