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

SDL_LoadWAV_RW

データソースからWAVEを読み込む. freesrcが0以外のとき自動的に解放する

構文

SDL_AudioSpec* SDL_LoadWAV_RW(SDL_RWops* src, int freesrc, SDL_AudioSpec* spec, Uint8** audio_buf, Uint32* audio_len)

引数

srcWAVEファイルのデータソース. ファイルI/Oを参照すること
freesrc0でないとき自動的にデータソースを解放する
spec出力形式のSDL_AudioSpec
audio_buf音声バッファ
audio_len音声バッファのバイト数

戻り値

この関数は呼び出しに成功すると, 元のWAVEの音声データが設定されたSDL_AudioSpecを戻す. audio_bufには音声データが確保されたバッファへのポインタが, audio_lenには音声バッファのバイト長が代入される.

WAVEファイルを開けない, 不明な形式, または壊れている場合はNULLを戻す. SDL_GetError()を呼んで詳細を知ることができる.

アプリケーションが戻されたaudio_bufを使った後は, SDL_FreeWAV()を呼んで解放する必要がある.

サンプルコード

extern SDL_RWops *myRWops;
SDL_AudioSpec wav_spec;
Uint32 wav_length;
Uint8 *wav_buffer;

/* WAVを読み込む */
if (SDL_LoadWAV_RW(myRWops, 1, &wav_spec, &wav_buffer, &wav_length) == NULL) {
    fprintf(stderr, "test.wavを読み込めなかった: %s\n", SDL_GetError());
} else {
    /* ここでWAVデータを処理する. そして... */
    SDL_FreeWAV(wav_buffer);
}

詳細

現在は無圧縮とMS-ADPCM WAVEに対応している.

使った後は音声バッファをSDL_FreeWAV()で解放する必要がある.

関連項目(関数)

SDL_FreeWAV
SDL_LoadWAV

SDL Wikiへのリンク

SDL_LoadWAV_RW - SDL Wiki