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_t | datalen | バッファのバイト数 |
| const SDL_AudioSpec * | spec | 書き込まれた生データの形式 |
| bool | free_when_done | 真の場合, MIX_Audioが破棄されたときdataをSDL_free()に渡す |
このバッファはMIX_Audioを使用する間は有効である必要があり, ミキサーはミックスするデータが必要なときはいつでもこのバッファをアクセスする.
この関数の意図は最大限の効率化である: データがメモリ上にありそれを維持することができるならばコピーする必要がない. しかし, これは複数の再生中のトラックを一度に変更するためにバッファの内容を変更するような巧みな使い方にも応用できる. (しかし, もちろん巧妙になりすぎないように注意する必要がある.)
MIX_Audioオブジェクトは複数のミキサーで共有できる.
mixer引数はこのオーディオを最も使うミキサーを示唆するもので, 最適化が適用される場合があるが, 必須ではなくミキサーとしてNULLを指定することもできる.
free_when_doneが真の場合, 戻されたMIX_Audioが最終的に破棄されたときSDL_mixerはSDL_free(data)を呼ぶ.
これはデータが静的でなく, この特定のMIX_Audioのために読み込まれていて, 単にコピーを生成したくないような場合に有用になりうる.
この関数はどのスレッドからも安全に呼べる.