Мэтт Пфайффер опубликовал учебник «Создание аудиовизуализатора с помощью AudioKit и SwiftUI» и разместил свой исходный код здесь. К сожалению, не компилируется. Другой пользователь разместил вопрос с описанием проблемы на учебном сайте, но он остался без ответа. Этот пользователь указывает на пару простых изменений, которые позволяют его компилировать.
Однако строка mic?.setOutput(to: micMixer)
в Conductor.swift
выдает фатальную ошибку времени выполнения:
Невозможно использовать необязательную цепочку для необязательных значений типа «AKMicrophone».
Будем признательны за любую помощь в исправлении этой ошибки.
Как говорится в вопросе Стивена Кросса на веб-сайте учебника, он попытался удалить «?» и все еще получил сбой с большим количеством тарабарщины объяснения. Итак, удаление ? не решает проблему.
Я только что получил ответ по электронной почте от Мэтта Пфайффера. Он исправит оригинальный учебник и исходный код в ближайшие несколько дней. Я оставлю вопрос опубликованным в Stack Overflow, чтобы указать будущим разработчикам аудиоприложений на этот код.
Я прокомментировал урок, но оставлю и это здесь:
С момента выпуска учебника в структуру 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/Аудиокит
Свяжитесь с нами, если у вас есть более конкретные вопросы об этом проекте.
Мэтт
Я только что скачал код Мэтта с GitHub и успешно запустил его с помощью Xcode. Это решило первоначальную проблему. Это похоже на отличный пример для изучения того, как использовать возможности анализа AudioKit. Мэтт, спасибо за быстрый ответ.
Просто уберите
?
.mic.setOutput(to: micMixer)