Я разрабатываю приложение для записи видео на iOS.Я вручную управляю AVAudioSession для записи с Bluetooth-гарнитуры.
Проблема: Когда я подключаю Apple Watch к iPhone, приложение игнорирует другие источники звука и использует микрофон от Apple Watch, если я отключаю Apple Watch, все работает правильно.Как правильно выбрать аудиовход, когда Apple Watch сопряжена?
Код для настройки AVAudioSession:
AVAudioSession *session = [AVAudioSession sharedInstance];
[session setActive:false error:nil];
[session setCategory:AVAudioSessionCategoryPlayAndRecord
withOptions:AVAudioSessionCategoryOptionAllowBluetooth | AVAudioSessionCategoryOptionAllowBluetoothA2DP error:nil];
[session setActive:true error:nil];
NSArray<AVAudioSessionPortDescription*> *ports = [self audioPorts];
«Порты» содержат «Микрофон iPhone» и «WI-C300», ноне содержит Apple Watch.Также мой код выбирает аудиовход «WI-C300», но приложение записывает звук из Apple Watch.
Для ручного управления AVAudioSession я использую этот код:
//session - AVCaptureSession
[session setAutomaticallyConfiguresApplicationAudioSession: false];
[session setUsesApplicationAudioSession:true];
Для выбора аудиопортаЯ использую:
//port - AVAudioSessionPortDescription
[[AVAudioSession sharedInstance] setPreferredInput:port error:nil];
На iPhone установлена iOS 12, на Apple Watch установлена watchOS 5.