У меня есть приложение со сложным обратным вызовом рендеринга, которое, я сомневаюсь, может сделать с AVAudioEngine.
В любом случае, использовать мой обратный вызов рендеринга AUGraph (с несколькими шинами) с AVAudioEngine?
Любой пример кода?
A (не рекомендуется) V3 AUAudioUnit подкласс все еще может возвращать AUInternalRenderBlock, который поддерживает обратные вызовы рендеринга аудио. Затем AVAudioEngine API может подключить эти аудиоустройства (например, к узлам микшера). Функции визуализации Audio Unit V3 по-прежнему позволяют использовать короткие (буферы с менее чем 500 сэмплами) синтез и анализ звука практически в реальном времени на iOS.
См. Пример моего приложения V3 AU на GitHub (смешанный Swift и Objective C): https://github.com/hotpaw2/auv3test5
API Audio Unit не устарел, только AUGraph, который предположительно построен поверх него.
Создание соединений с использованием AudioUnitSetProperty с kAudioUnitProperty_MakeConnection с AudioUnitConnection структурой.
kAudioUnitProperty_MakeConnection
Запуск и остановка выходного устройства с помощью AudioOutputUnitStart и AudioOutputUnitStop .
Установка обратного вызова рендеринга с использованием AudioUnitSetProperty и kAudioUnitProperty_SetRenderCallback с AURenderCallbackStruct
kAudioUnitProperty_SetRenderCallback
На самом деле AUGraph не так уж много, кроменебольшая бухгалтерия и более простой синтаксис подключения.