目次 - SDL_mixer 3.0 - MIX_LoadRawAudioNoCopy

MIX_LoadRawAudioNoCopy

メモリバッファから再生する生PCMデータをコピーせずに読み込む

ヘッダ

SDL3_mixer/SDL_mixer.h

構文

MIX_Audio * MIX_LoadRawAudioNoCopy(MIX_Mixer *mixer, const void *data, size_t datalen, const SDL_AudioSpec *spec, bool free_when_done);

引数

MIX_Mixer *mixerオーディオデータを使用するミキサー. NULLも可
const void *data生PCMデータが書き込まれたバッファ
size_tdatalenバッファのバイト数
const SDL_AudioSpec *spec書き込まれた生データの形式
boolfree_when_done真の場合, MIX_Audioが破棄されたときdataSDL_free()に渡す

戻り値

(MIX_Audio *) ミキサーで音声を発生させるために使用できるオーディオオブジェクトを戻す. 失敗のときNULLを戻す. SDL_GetError()を呼んで詳細を知ることができる.

詳細

このバッファはMIX_Audioを使用する間は有効である必要があり, ミキサーはミックスするデータが必要なときはいつでもこのバッファをアクセスする.

この関数の意図は最大限の効率化である: データがメモリ上にありそれを維持することができるならばコピーする必要がない. しかし, これは複数の再生中のトラックを一度に変更するためにバッファの内容を変更するような巧みな使い方にも応用できる. (しかし, もちろん巧妙になりすぎないように注意する必要がある.)

MIX_Audioオブジェクトは複数のミキサーで共有できる. mixer引数はこのオーディオを最も使うミキサーを示唆するもので, 最適化が適用される場合があるが, 必須ではなくミキサーとしてNULLを指定することもできる.

free_when_doneが真の場合, 戻されたMIX_Audioが最終的に破棄されたときSDL_mixerはSDL_free(data)を呼ぶ. これはデータが静的でなく, この特定のMIX_Audioのために読み込まれていて, 単にコピーを生成したくないような場合に有用になりうる.

スレッドセーフ

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

バージョン

SDL_image 3.0.0以降

関連項目

SDL Wikiへのリンク

SDL3_mixer/MIX_LoadAudio