Я создаю ритмическую игру и пытаюсь предоставить аудиоответ с очень низкой задержкой пользователю, используя AudioKit.
Я новичок в AudioKit, следуя примеру Hello world, я создал очень простое тестовое приложение с использованием AKOscillator:
...
let oscillator = AKOscillator()
...
AudioKit.output = oscilator
oscillator.frequency = 880
AKSettings.bufferLength = .shortest
AKSettings.ioBufferDuration = 0.002
AudioKit.start()
... // On Touch event ///
oscillator.start()
... // 20 ms later ///
oscillator.stop()
Я измерил задержку между сенсорным событием и первым выходящим звуком, он составляет около 100 мс, что для нас очень медленно ...
Несколько возможностей, о которых я мог подумать:
100 мс превышает аппаратное ограничение задержки вывода звука
некоторые магические настройки могут исправить это
oscillator.start () имеет некоторую задержку, для достижения минимальной задержки я должен использовать что-то еще
что-то не так с другими частями кода (обработка касанием и т. Д.)
Поскольку у меня теперь есть опыт работы с AudioKit (ни с аудиосистемой iOS ...), любая информация будет очень полезна!