bool MIX_SetTrackPlaybackPosition(MIX_Track *track, Sint64 frames);
| MIX_Track * | track | 設定するトラック |
| Sint64 | frames | シーク先のサンプルフレーム位置 |
(MIX_GetTrack3DPosition()と混同しないこと. これはトラックの3D空間内の位置で, オーディオデータの再生位置ではない.)
再生中のトラックでは, 次回のミキサーの実行から新しい位置からミキシングが開始される.
位置はデコードされたオーディオデータのサンプルフレーム単位で, 時間ではないため完全なミキシングの位置を得ることができる. 時間単位が必要な場合は, MIX_TrackFramesToMS()で変換してミリ秒を得ることができる.
この関数は入力がシーク可能である必要があり(そのため入力がMIX_SetTrackAudioStream()で設定したものの場合は使用できない), かつオーディオファイルがシーク可能な形式である必要がある. SDL_mixerのデコーダは一部のファイル形式ではシーク不能, またはサンプル単位ではなく時間単位でのみシーク可能で, この場合は最終的な位置は指定したサンプルフレーム位置と多少ずれる可能性がある. オーディオデータとファイルをチェックし, 必要ならばバグレポートを提出すること.
この関数を停止中のトラックに対して呼ぶことはできるが, 後のMIX_PlayTrack()の呼び出しで開始位置はリセットされる. 一時停止中のトラックのトラックの場合は新しい入力位置から一時停止解除される.
この関数はどのスレッドからも安全に呼べる.