【发布时间】:2021-01-05 00:59:48
【问题描述】:
我目前正在尝试让我的设备通过设备麦克风为捕获会话录制音频,同时在蓝牙设备 (AirPods) 上输出音频。
我这样做的原因是因为使用蓝牙耳机,尤其是 AirPods,当蓝牙麦克风处于活动状态时,播放质量很差。
我尝试使用 setPreferredInput,但它改变了输入和输出,这是我目前所拥有的。
do {
let session = AVAudioSession.sharedInstance()
try session.setCategory(.playAndRecord, mode: .default, options: [.defaultToSpeaker, .allowBluetooth, .mixWithOthers])
print(session.currentRoute.outputs)
try session.setAllowHapticsAndSystemSoundsDuringRecording(true)
try session.setActive(true, options: .notifyOthersOnDeactivation)
if let mic = session.availableInputs?.first(where: {$0.portType == AVAudioSession.Port.builtInMic}) {
try session.setPreferredInput(mic)
}
} catch let err {
print("Audio session err", err.localizedDescription)
}
我还看到了一个旧的 api,它可能会有所帮助,但现在它似乎早已贬值了 (kAudioSessionProperty_OverrideCategoryEnableBluetoothInput) 用于 AudioSession。
App Store 上还有其他应用似乎已经实现了拆分录制,所以这似乎是可能的。
【问题讨论】:
标签: ios swift core-audio avaudiosession