目次 - SDL_mixer 3.0 - MIX_GetAudioDuration

MIX_GetAudioDuration

MIX_Audioの再生の長さをサンプルフレーム数で得る

ヘッダ

SDL3_mixer/SDL_mixer.h

構文

Sint64 MIX_GetAudioDuration(MIX_Audio *audio);

#define MIX_DURATION_UNKNOWN -1
#define MIX_DURATION_INFINITE -2

引数

MIX_Audio *audio調査するオーディオ

戻り値

(Sint64) オーディオの長さのサンプルフレーム数. またはMIX_DURATION_UNKNOWNまたはMIX_DURATION_INFINITE

詳細

この情報はMIX_PROP_METADATA_DURATION_FRAMES_NUMBERプロパティでも得られるが, よく使われるためシンプルなアクセサ関数が用意されている.

これはデータの長さのサンプルフレーム数のため, サンプル単位での正確なミキシングが可能になる. サンプルフレーム数はサンプルレート(周波数)もわかっている場合のみ時間として意味がある. サンプルフレーム数をミリ秒に変換するには, MIX_AudioFramesToMS()を使用すること.

全てのオーディオファイルのデコード後の完全な長さを得られるわけではない: 一部のファイルは無限の音声を生成するため計算することができない.

また, 一部のファイル形式は長さを時間の単位でしか得られない. これはSDL_mixerはこの情報からサンプルフレーム数を推定するしかないことを表す. 精度が低い場合, 得られる長さはどちらかに数フレームずれる場合がある.

長さがわかった場合, この関数が0以上の値を戻す. この関数はMIX_DURATION_UNKNOWNまたはMIX_DURATION_INFINITEを戻す場合もある.

スレッドセーフ

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

バージョン

SDL_image 3.0.0以降

SDL Wikiへのリンク

SDL3_mixer/MIX_GetAudioDuration