int SDL_GetAudioStreamData(SDL_AudioStream *stream, void *buf, int len);
SDL_AudioStream * | stream | オーディオデータを要求するストリーム |
void * | buf | オーディオデータを書き込むバッファへのポインタ |
int | len | 書き込みデータの最大バイト数 |
(int) 成功のときストリームから読み込んだバイト数, 失敗のとき-1を戻す SDL_GetError()を呼んで詳細を知ることができる.
データは, 形式/チャネル/周波数が, 最後に呼んだSDL_SetAudioStreamFormat, または変更していないならばストリームを生成したときのものと一致している必要がある.
必要な変換と再サンプリングはこの関数の呼び出しで行っており, SDL_PutAudioStreamDataでは後で処理するために単に未変換のデータをキューに入れるだけなので注意すること. ストリームへの新しいデータの入力時には変換が完了していて, 関数の呼び出しでは単に変換されたデータをコピーしていたSDL2とは異なる.
この関数はどのスレッドからも安全に呼べるが, ストリームにコールバックが設定されている場合は, 呼び出し側のロックが必要になる.