Чтобы начать воспроизведение с сэмпла 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 ...