サンプル 50,000 で再生を開始し、100,000 で終了するには、サウンド ファイルのサンプル レートとシステムのサンプル レートが同じであると仮定して、次のようにします。DSP クロックはシステム出力サンプルで動作するため、出力レートに関して最終サンプルを調整するためにいくつかの計算を行う必要がある場合があります。サウンド サンプル レートについては Sound::getDefaults を、システム レートについては System::getSoftwareFormat を参照してください。
unsigned int sysHi, sysLo;
// ... create sound, play sound paused ...
// Seek the data to the desired start offset
channel->setPosition(50000, FMOD_TIMEUNIT_PCM);
// For accurate sample playback get the current system "tick"
system->getDSPClock(&sysHi, &sysLo);
// Set start offset to a couple of "mixes" in the future, 2048 samples is far enough in the future to avoid issues with mixer timings
FMOD_64BIT_ADD(sysHi, sysLo, 0, 2048);
channel->setDelay(FMOD_DELAYTYPE_DSPCLOCK_START, sysHi, sysLo);
// Set end offset for 50,000 samples from our start time, which means the end sample will be 100,000
FMOD_64BIT_ADD(sysHi, sysLo, 0, 50000);
channel->setDelay(FMOD_DELAYTYPE_DSPCLOCK_END, sysHi, sysLo);
// ... unpause sound ...