Как подключить AVAudioEngine к аудиовходу Lightning Port?

Я бы хотел подключить свою электрогитару к моему приложению. У меня есть аппаратное обеспечение (Line6 Sonic Port), который передает аудио с моей гитары в мой iPhone. Я выяснил, как прослушивать звук в наушниках, но это звук, поступающий с микрофона для наушников, а не на порт Lightning Port. Как программно найти входной сигнал Lightning Port вместо того, чтобы получать звук через микрофон для наушников?

Вот что я пробовал до сих пор:

self.audioEngine = AVAudioEngine() let input = self.audioEngine.inputNode let mixer = self.audioEngine.mainMixerNode let output = self.audioEngine.outputNode self.audioEngine.inputNode.installTapOnBus(0, bufferSize: 128, format: input.inputFormatForBus(0)) { (buffer, time) -> Void in // } self.audioEngine.connect(input, to: mixer, format: input.inputFormatForBus(0)) self.audioEngine.connect(mixer, to: output, format: mixer.inputFormatForBus(0)) self.audioEngine.prepare() self.audioEngine.startAndReturnError(nil) 

Когда я запускаю это, я слышу звук, но он исходит из моего микрофона для наушников, а не гитары. Как подключить аудиосигнал от порта молнии?

Для быстрой иллюстрации здесь используется аппаратное обеспечение, которое я использую: Line6 Sonic Port

2 Solutions collect form web for “Как подключить AVAudioEngine к аудиовходу Lightning Port?”

Чтобы подключиться к определенному аудиовходу, вам необходимо настроить sharedInstance из AVAudioSession , используя метод setPreferredInput:error: .

Вот как это делается в Objective-C:

 AVAudioSession *sharedSession = [AVAudioSession sharedInstance]; NSArray *availableInputs = [sharedSession availableInputs]; [availableInputs enumerateObjectsUsingBlock:^(AVAudioSessionPortDescription *portDescription, NSUInteger idx, BOOL *stop) { if (portDescription.portType == AVAudioSessionPortUSBAudio) { [sharedSession setPreferredInput:portDescription error:nil]; } }]; 

Чтобы узнать больше, ознакомьтесь с:

  • Документация AVAudioSession
  • Технические вопросы QA1799: AVAudioSession – выбор микрофона

iOS обычно направляет как аудиовход, так и выход из последнего подключенного порта. Поскольку вы подключили наушники, это порт, который он использует для записи. Отключите наушники, включите молнию, и он будет использовать этот маршрут для записи звука и воспроизведения.

  • Как я могу определить, когда закончена регистрация ScheduledAudioFileRegion?
  • Как получить текущие выходные значения дБ фоновой музыки для отображения измерителя уровня звука в iOS?
  • Какую структуру я должен использовать для воспроизведения аудиофайла (WAV, MP3, AIFF) в iOS с низкой задержкой?
  • вывод аудиозаписей с объектной записью
  • Как я могу получить встроенную (поддерживаемую аппаратными) частоту дискретизации звука во избежание конверсии частоты дискретизации?
  • AudioUnitInitialize вызывает ошибку при инициализации AudioComponentInstance
  • Как использовать распознавание речи iOS 10?
  • Генерация синусоиды iOS - звуковой щелчок
  • Запись из Viewcontroller vs Model Class
  • Создайте предварительный эквалайзер в iOS
  • Эффект эха: записывать звуковые буферы со смещением?
  • Interesting Posts

    Как включить Bluetooth в iOS Simulator?

    Как модально представить ViewController, а затем запустить функцию обратного вызова / блок после того, как ViewController был уволен, без делегирования?

    Развертывание приложений iOS для приложений из XCode через сценарий фазы сборки? (Джейлбрейк)

    Как реализовать приложения Open In для обычного текста

    Как именно Facebook AppLinks работает на iOS?

    Несколько видео, один и тот же экран

    Доступ к текущей позиции UIView во время анимации

    Какие инструменты можно использовать для создания iPhone App Screencasts?

    iOS-Charts Как поставить UIImage рядом с точкой

    При покупке приложения – Подписка – не на основе Apple Id

    Как узнать, когда пользователь купил приложение / установил его в первый раз (возможно без UDID?)

    Не удалось создать профиль подготовки iOS – для бесплатного профиля

    Предпочтение NSBundleLocalizations не возвращает доступную наиболее определенную локализацию

    Как показать клавиатуру с помощью NSButton?

    Проверьте, существует ли UserDefault – Swift

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.