Расширение AUv3 AudioUnit, IPCAUClient: отображаемое имя пакета - ноль - PullRequest
0 голосов
/ 03 февраля 2020

В моем расширении AUv3 AudioUnit я получаю сообщение об ошибке на выходе консоли отладки:

IPCAUClient.cpp:129:ConnectToRegistrationServer: IPCAUClient: bundle display name is nil

Но в файле info.plist есть имя ... У кого-нибудь есть такая же проблема?

enter image description here

1 Ответ

0 голосов
/ 29 марта 2020

Это буквально заняло у меня НЕДЕЛИ, чтобы найти детали, чтобы заставить это работать должным образом. Нет никакого примера кода от Apple, который объяснил бы, как это должно работать.

Основной проблемой было получение удаленного viewcontroller из плагина при первом запуске содержащего приложения. Плагин AUv3 прекрасно работает, когда он был вставлен в Garageband один раз, чтобы обрабатывать регистрацию в системе, но без этого шага не было доступно удаленного ViewController.

Я видел другие реализации, которые читают AUv3 viewController из связать и подключить элементы пользовательского интерфейса к контроллеру без головы - это шаблонный код и плохой стиль IMO ... лучше использовать AVAudioUnit и получить AUAudioUnit_XH, включая AUAudioUnitRemoteViewController, используя эту оболочку:

AU_AudioUnit = AVaudioUnit.AUAudioUnit

Чтобы заставить AudioUnit работать внутри содержащего приложения, существует несколько зависимостей:

  1. Плагин AUv3 необходимо зарегистрировать с помощью registerSubclass метод.

  2. Должен быть установлен наблюдатель на AVAudioUnitComponentManagerRegistrationsChangedNotification.

  3. Функцию Inter-App Audio необходимо переключить в правах!

Я надеюсь, что это поможет вам там и сэкономит вам много долгих и одиноких ночей ...

...