AUGraph означает, что больше нет звуковых обратных вызовов?

У меня есть приложение со сложным обратным вызовом рендеринга, которое, я сомневаюсь, может сделать с AVAudioEngine.

В любом случае использовать мой обратный вызов рендеринга AUGraph (с несколькими шинами) с AVAudioEngine?

Любой пример кода?

2 ответа

Решение

Аудиоустройство API не является устаревшим, только AUGraph, который предположительно построен на его основе.

Установите соединения, используя AudioUnitSetProperty с kAudioUnitProperty_MakeConnection со структурой AudioUnitConnection.

Запустите и остановите выходной блок с помощью AudioOutputUnitStart и AudioOutputUnitStop.

Установите обратный вызов рендеринга, используя AudioUnitSetProperty и kAudioUnitProperty_SetRenderCallback с AURenderCallbackStruct

На самом деле AUGraph дает не так много, кроме небольшой бухгалтерии и более простого синтаксиса соединения.

Подкласс AUAudio Unit V3 (не рекомендуется) по- прежнему может возвращать AUInternalRenderBlock, который поддерживает обратные вызовы рендеринга звука. Затем AVAudioEngine API может подключить эти аудиоустройства (например, к узлам микшера). Функции визуализации Audio Unit V3 по-прежнему позволяют использовать короткие (буферы с менее чем 500 выборками) синтез и анализ звука практически в реальном времени на iOS.

Смотрите пример моего приложения V3 AU на GitHub (смешанный Swift и Objective C): https://github.com/hotpaw2/auv3test5

Другие вопросы по тегам