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

# SDL_GetNumAudioDevices

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

## 構文

`int SDL_GetNumAudioDevices(int iscapture)`

## 引数

iscapture | 0のとき再生デバイス, 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