IDirectSoundBufferのGetCurrentPosition方法は、2つの引数を有する:FMODには、DirectSoundのIDirectSoundBuffer :: GetCurrentPositionのpdwCurrentWriteCursor引数に相当するものがありますか?
HRESULT GetCurrentPosition(LPDWORD pdwCurrentPlayCursor, LPDWORD pdwCurrentWriteCursor);
最初の引数「pdwCurrentPlayCursorは」プレイカーソルを受信し、第二の引数「pdwCurrentWriteCursor」が後にサウンドバッファ内の位置を示す書き込みカーソルを受信しますデータを書き込むことは安全です - 再生カーソルで始まり、書き込みカーソルで終わる領域(おそらくバッファの終わりを包んでいる)には、サウンドハードウェアにコミットされていてまだ再生されていないデータが含まれている可能性があります。
FMODが提供する最も近い同等の方法は、FMODのgetPosition方法であると思わ::チャンネル:
FMOD_RESULT F_API getPosition(unsigned int *position, FMOD_TIMEUNIT postype);
この方法は、プレイカーソルを受信するために、引数「位置」を持っていませんが、受信するための引数カーソルを書く。
FMODは、IDirectSoundBuffer :: GetCurrentPositionのpdwCurrentWriteCursor引数と同じ目的を果たす引数を持つ関数を提供しますか?または、FMODを使用しているときに安全な書き込みカーソルを取得する唯一の方法は、固定オフセットを追加することです(DirectSoundドキュメントでは、再生カーソルと書き込みカーソルの間隔は約15ミリ秒です)。