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

SDL_BindAudioStreams

オーディオストリームの一覧をオーディオデバイスにバインドする

ヘッダ

SDL3/SDL_audio.h

構文

bool SDL_BindAudioStreams(SDL_AudioDeviceID devid, SDL_AudioStream * const *streams, int num_streams);

引数

SDL_AudioDeviceIDdevidストリームにバインドされるオーディオデバイス
SDL_AudioStream * const *streamsデバイスにバインドするオーディオストリームの配列
intnum_streamsstreams配列の要素数

戻り値

(bool) 成功のとき真, 失敗のとき偽を戻す SDL_GetError()を呼んで詳細を知ることができる.

詳細

オーディオデータの入出力は, いずれかのストリームがバインドされたとき始まる. 再生デバイスの場合, 全てのバインドされたストリームのデータがミックスされ, デバイスに送られる. 録音デバイスの場合, 録音されたデータのコピーが各ストリームに供給される.

オーディオストリームはオープンしたデバイスにのみバインドできる. この操作はアトミックである. つまり1つの呼び出しでバインドした全てのストリームは処理が同時に始まり, 同期を保つことができる. また, 全てのストリームは, バインドされたか, バインドされていないかのいずれかの状態になる.

既にバインドされたストリームをバインドしようとするとエラーとなる. その場合, まず明示的にバインドを解除する必要がある.

ストリームをデバイスにバインドすると, 再生デバイスには出力形式が設定され, 録音デバイスには入力形式が設定されて, ストリームとデバイスの設定と一致する. 関数を呼んだ後, ストリームの再生または録音のどちらか一方の形式をSDL_SetAudioStreamFormat()でいつでも変更できる. ストリームの再生または録音のどちらか一方の側の形式を変更しない(オーディオストリームの設定をNULLで生成した)場合, デバイスの設定と一致した形式になる.

スレッドセーフ

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

バージョン

SDL 3.2.0以降

関連項目

SDL Wikiへのリンク

SDL_BindAudioStreams - SDL Wiki