Entonces, después de mucho buscar, pude encontrar el bloque de código que permite que se reproduzca el audio de fondo mientras se graba el video al mismo tiempo. He pegado dicho bloque de código a continuación.
fileprivate func setBackgroundAudioPreference() { guard allowBackgroundAudio == true else { return } guard audioEnabled == true else { return } do{ if #available(iOS 10.0, *) { try AVAudioSession.sharedInstance().setCategory(.playAndRecord, mode: .default, options: [.mixWithOthers, .allowBluetooth, .allowAirPlay, .allowBluetoothA2DP]) } else { let options: [AVAudioSession.CategoryOptions] = [.mixWithOthers, .allowBluetooth] let category = AVAudioSession.Category.playAndRecord let selector = NSSelectorFromString("setCategory:withOptions:error:") AVAudioSession.sharedInstance().perform(selector, with: category, with: options) } try AVAudioSession.sharedInstance().setActive(true) session.automaticallyConfiguresApplicationAudioSession = false } catch { print("[SwiftyCam]: Failed to set background audio preference") } }Sin embargo, tengo un pequeño problema. Por alguna razón, cuando la cámara carga el volumen de audio de fondo, se reduce. Cuando grabo un video con instagram, el audio no se reduce y aún se graba. ¿Hay alguna forma en que pueda cambiar mi bloque de código actual para no bajar el volumen mientras grabo con video?
Leí la documentación y aparentemente la opción .duckOthers debería ser la única opción que reduce el volumen. Pero este también lo hace
Bien, encontré la respuesta después de profundizar en parte de la documentación.
Código actualizado publicado a continuación. Todo lo que tiene que hacer es configurar la opción .defaultToSpeaker
fileprivate func setBackgroundAudioPreference() { guard allowBackgroundAudio == true else { return } guard audioEnabled == true else { return } do{ if #available(iOS 10.0, *) { try AVAudioSession.sharedInstance().setCategory(.playAndRecord, mode: .default, options: [.mixWithOthers, .allowBluetooth, .allowAirPlay, .allowBluetoothA2DP,.defaultToSpeaker]) } else { let options: [AVAudioSession.CategoryOptions] = [.mixWithOthers, .allowBluetooth] let category = AVAudioSession.Category.playAndRecord let selector = NSSelectorFromString("setCategory:withOptions:error:") AVAudioSession.sharedInstance().perform(selector, with: category, with: options) } try AVAudioSession.sharedInstance().setActive(true) session.automaticallyConfiguresApplicationAudioSession = false } catch { print("[SwiftyCam]: Failed to set background audio preference") } }