Аудиовизуализатор с использованием AudioKit и SwiftUI

Мэтт Пфайффер опубликовал руководство по созданию аудиовизуализатора с помощью AudioKit и SwiftUI и опубликовал свой исходный код здесь. К сожалению, не компилируется. Другой пользователь разместил вопрос с описанием проблемы на учебном сайте, но он остался без ответа. Этот пользователь указывает на пару простых изменений, которые позволяют его компилировать.

Однако строка mic?.setOutput(to: micMixer) в Conductor.swift вызывает фатальную ошибку времени выполнения:

Невозможно использовать необязательную цепочку для необязательных значений типа «AKMicrophone».

Будем признательны за любую помощь в исправлении этой ошибки.


person KeithB    schedule 21.12.2020    source источник
comment
Просто удалите ?. mic.setOutput(to: micMixer)   -  person aheze    schedule 21.12.2020
comment
Как говорится в вопросе Стивена Кросса на веб-сайте учебника, он пытался удалить? и все еще получил сбой с большим количеством тарабарщины объяснения. Итак, удаление ? не решает проблему.   -  person KeithB    schedule 22.12.2020
comment
Я только что получил ответ по электронной почте от Мэтта Пфайффера. Он исправит оригинальный учебник и исходный код в ближайшие несколько дней. Я оставлю вопрос опубликованным в Stack Overflow, чтобы указать будущим разработчикам аудиоприложений на этот код.   -  person KeithB    schedule 23.12.2020


Ответы (1)


Я прокомментировал урок, но оставлю и это здесь:

С момента выпуска учебника в структуру AudioKit были внесены изменения, которые требуют настройки способа настройки микрофона.

Я переписал код для создания этого визуализатора с помощью AudioKit версии 5 — в руководстве используется версия 4, которая в зависимости от вашей версии (4.x) может потребовать одного из нескольких вариантов настройки микрофона.

См. следующий репозиторий github, в котором используется AudioKit V5: https://github.com/Matt54/AudioVisualizerAK5

Я не буду перечислять здесь все изменения между проектами, так как вы можете просто скачать проект и запустить его/скопировать шаблон. Однако некоторые заметные изменения заключаются в том, что я объединил два представления SwiftUI в одно представление (FFTView) и теперь использую обратный вызов из FFTTAP AudioKit, чтобы обновить данные амплитуды для представления.

Также стоит отметить, что с AudioKit V5 вы можете использовать менеджер пакетов swift для установки AudioKit в свои проекты. См. раздел «Установка с помощью диспетчера пакетов Swift» здесь: https://github.com/AudioKit/AudioKit

Свяжитесь с нами, если у вас есть более конкретные вопросы об этом проекте.

Мэтт

person Matt54    schedule 29.12.2020
comment
Я только что скачал код Мэтта с GitHub и успешно запустил его с помощью Xcode. Это решило первоначальную проблему. Это похоже на отличный пример для изучения того, как использовать возможности анализа AudioKit. Мэтт, спасибо за быстрый ответ. - person KeithB; 30.12.2020