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

SDL_ConvertAudio

音声データを別の形式に変換する

構文

int SDL_ConvertAudio(SDL_AudioCVT* cvt)

引数

cvt事前に設定したSDL_AudioCVT (詳細を参照すること)

戻り値

変換が正常に完了したとき0, 失敗のとき負の数のエラーコードを戻す. SDL_GetError()を呼んで詳細を知ることができる.

詳細

アプリケーションはcvt構造体をSDL_BuildAudioCVT()を使って初期化し, 音声バッファを確保し, 変換前の音声データを書き込む. この関数はバッファを変換し, 要求の形式で置き換える.

データはいくつかの段階を経て変換され, その途中で長さが一時的に増加することもある. 例えば低い周波数に再サンプリングする場合, SDLは一時的に16bitデータを32bitに拡張し, その後, 増大したデータを収縮させる. バッファは変換前と変換後の両用で, 変換すると書き換えられ, アプリケーションは変換の過程で最も長いデータを書き込めるだけの領域を確保する必要がある. SDL_BuildAudioCVT()から戻った後, アプリケーションはcvt構造体のlenフィールドに変換前データのバイト長を書き込み, bufフィールドに len * len_mult バイトを確保する必要がある.

変換前データはSDL_ConvertAudio()を呼ぶ前にバッファにコピーする必要がある. 成功すると, このバッファには変換後のデータが書き込まれている. cvt構造体のlen_cvtフィールドが変換後のデータのバイト長である. len_cvtの後の領域に書き込まれた値は未定義である.

関連項目(関数)

SDL_BuildAudioCVT

SDL Wikiへのリンク

SDL_ConvertAudio - SDL Wiki