Как подключить 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 обычно направляет как аудиовход, так и выход из последнего подключенного порта. Поскольку вы подключили наушники, это порт, который он использует для записи. Отключите наушники, включите молнию, и он будет использовать этот маршрут для записи звука и воспроизведения.

  • kAudioDevicePropertyBufferFrameSize для iOS
  • Выход FFT с поплавковым буфером AudioUnit
  • Как указать формат AVAudioEngine Mic-Input?
  • Запись в AAC из RemoteIO: данные записываются, но файлы не воспроизводятся
  • как обрезать или обрезать музыку из библиотеки itunes
  • ios - объединить / объединить несколько аудиофайлов
  • Как заменить устаревший AudioUnitSampleType на iOS (Audio Units)?
  • Как увеличить громкость звука и удалить фоновый шум в объективе c
  • Возможно ли поочередно выбирать каналы ввода микрофона / микрофона для каналов L / R?
  • Выход монофонического воспроизведения с Core Audio
  • AudioFileReadPacketData возвращает -50 при передаче действительного файла
  • PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.