AVAudioSession and Haptic Feedback

252 Views Asked by At

The main issue here is, when the microphone input is added, the device loses any haptic system sounds.

I setup the audio session here:

let audioSession = AVAudioSession.sharedInstance()
do {
    try self.audioSession.setCategory(.playAndRecord, options: .mixWithOthers)
    try self.audioSession.setAllowHapticsAndSystemSoundsDuringRecording(true)
    try self.audioSession.setActive(true)
} catch { }

I make sure I am using setAllowHapticsAndSystemSoundsDuringRecording.

Though out the app, I am adding the microphone and removing it on-demand:

 do {
      let microphonePermission = AVCaptureDevice.authorizationStatus(for: AVMediaType.audio)
      if microphonePermission != .denied && microphonePermission != .restricted {
        let audioDevice = AVCaptureDevice.default(for: AVMediaType.audio)
        let audioDeviceInput = try AVCaptureDeviceInput(device: audioDevice!)
        if self.session.canAddInput(audioDeviceInput) {
           self.session.addInput(audioDeviceInput)
        }
        else { print("Could not add audio device input to the session.") }
      } else {

      }
 }
 catch { print("Could not create audio device input: \(error).") }

As soon as the microphone is added, it loses haptic feedback and system sounds.

0

There are 0 best solutions below