Вопрос:
Есть ли способ во время воспроизведения вызвать изменение свойства AVAudioUnitTimePitchrate (или, в более общем смысле, любого свойства AVAudioUnit) в указанный момент времени устройства?
Контекст:
У меня есть AVAudioSequencer и AVAudioPlayer — выход которого подключен к AVAudioUnitTimePitch — который начал воспроизведение в идеальной синхронизации (с использованием hostime(forBeats:error:) и play(atTime:), подробности см. в этом ответе SO).
Я хотел бы точно синхронизировать изменение свойств AVAudioSequencer и AVAudioTimePitch, соответствующих свойств скорости (здесь есть ссылки на скорость секвенсора и документ о расценке единицы времени шага). Когда я редактирую оба свойстваrate как последовательные операторы в одном и том же потоке моего кода, соответствующие эффекты происходят не синхронно.
Мой текущий обходной путь: остановите AVAudioPlayer на короткое время и перезапустите его (с новой скоростью) синхронно с секвенсором, используя hostime(forBeats:error:) и снова воспроизведите(atTime:).
Подробнее здесь: https://stackoverflow.com/questions/793 ... g-playback