Вот хак с исправлением высоты тона, если вам не нужны прерывания.
OpenAL изменяет продолжительность воспроизведения звука, воспроизводимого, когда высота тона не равна 1,0.
(не представляется возможным запросить эту новую длину из OpenAL,
параметры AL возвращают те же значения, что и раньше)
Шаг варьируется от 0,5 до 2,0f. Таким образом, если мы предположим, что шаг в 0,5 в два раза больше,
и высота тона в 2,0 раза меньше, мы должны иметь возможность использовать высоту тона как множитель
- (void) playSoundWithCallback {
[someSound play];
[someDelegate performSelector:@selector(soundDidFinishPlaying:)
withObject:someSound afterDelay: someSound.duration * (1.0/someSound.pitch) ];
}