twilio / twilio-video-ios

Programmable Video SDK by Twilio
http://twilio.com/video
Other
64 stars 22 forks source link

Smart cover on iPad running iOS 15 may cause audio issue by audio interruptions #225

Open piyushtank opened 2 years ago

piyushtank commented 2 years ago

Description

On iPads running iOS 15, while in a live video call, if you use smart cover, the remote participant may observe no audio. This is an iOS behavior where it interrupts audio capture from the microphone for VoIP calls when smart cover is used.

Steps to Reproduce

  1. iPad running iOS 15 having smart cover
  2. Connect to a Room and observe the bi-direction audio
  3. Use smart cover and close the screen.
  4. No audio is observed on the remote side.

Over writing the audio interruption behavior

Use overrideMutedMicrophoneInterruption AVAudioSession Category Option. Here is an example code snippet on how to set the category options using DefaultAudioDevice.

try if #available(iOS 14.5, *) {
    let audioDevice = DefaultAudioDevice()
    TwilioVideoSDK.audioDevice = audioDevice
    audioDevice.block = {
        do {
            DefaultAudioDevice.DefaultAVAudioSessionConfigurationBlock()
            let audioSession = AVAudioSession.sharedInstance()
            audioSession.setCategory(AVAudioSession.Category.playAndRecord,
                                        mode: AVAudioSession.Mode.videoChat,
                                        options: [AVAudioSession.CategoryOptions.allowBluetooth,
                                                AVAudioSession.CategoryOptions.overrideMutedMicrophoneInterruption] )

        } catch let error as NSError {
            print("Fail: \(error.localizedDescription)")
        }
    }
    audioDevice.block();
}

iOS Version

iOS 15

iOS Device

iPad