2017-01-05 15 views
3

С iOS10 есть больше возможностей управлять AUdioSession, но мне не удалось сохранить микрофон для наушников в качестве входного сигнала, в то время как звук выходит через громкоговоритель iphone.AVAudioSession: микрофонные наушники в качестве входных и динамиков iphone в качестве выхода

Метод «overrideOutputAudioPort» ниже, также переопределить входной аудио порт в качестве микрофона iphone

let session = AVAudioSession.sharedInstance() 
do { 
    try session.setCategory(AVAudioSessionCategoryPlayAndRecord) 
    try! session.overrideOutputAudioPort(.speaker) 
} catch { 
} 

Есть ли решение сохранить наушники в качестве входных данных?

ответ

1

Как undeerstand this Apple documentation, это не представляется возможным с помощью AVAudioSession:

Если подключена гарнитура на время, установленное значение этого свойства, в kAudioSessionOverrideAudioRoute_Speaker, система изменяет звуковую маршрутизацию для входа, а также для вывода: вход поступает от встроенного микрофона; выход поступает во встроенный динамик.

+0

это не относится к новой опции «allowBluetoothA2DP» (с iOS10) 'попробовать session.setCategory (AVAudioSessionCategoryPlayAndRecord, с: .allowBluetoothA2DP)': с помощью этой опции, вход микрофона не меняется (только выход) –

+0

@DamienRomito интересный. Я не знал об этом. Является ли это документированным (помимо видео WWDC)? – shallowThought

+0

нет, я также нашел какую-либо документацию :( –