Index: webrtc/modules/audio_device/ios/audio_device_ios.mm |
diff --git a/webrtc/modules/audio_device/ios/audio_device_ios.mm b/webrtc/modules/audio_device/ios/audio_device_ios.mm |
index f26e9f1cc7463657a2646aa28f4789cc9bbe73b2..b94ea17b7f62a96d78be7f2f85f92a18d8630edb 100644 |
--- a/webrtc/modules/audio_device/ios/audio_device_ios.mm |
+++ b/webrtc/modules/audio_device/ios/audio_device_ios.mm |
@@ -86,13 +86,21 @@ static void ActivateAudioSession(AVAudioSession* session, bool activate) { |
NSError* error = nil; |
BOOL success = NO; |
- // Deactivate the audio session and return if |activate| is false. |
if (!activate) { |
- success = [session setActive:NO error:&error]; |
+ // Deactivate the audio session using an extra option and then return. |
+ // AVAudioSessionSetActiveOptionNotifyOthersOnDeactivation is used to |
+ // ensure that other audio sessions that were interrupted by our session |
+ // can return to their active state. It is recommended for VoIP apps to |
+ // use this option. |
+ success = [session |
tkchin_webrtc
2015/11/16 21:40:34
nit:
maybe just break it onto next line (you can
henrika_webrtc
2015/11/17 13:52:32
withOptions:AVAudioSessionSetActiveOptionNotifyOth
|
+ setActive:NO |
+ withOptions:AVAudioSessionSetActiveOptionNotifyOthersOnDeactivation |
+ error:&error]; |
RTC_DCHECK(CheckAndLogError(success, error)); |
return; |
} |
+ // Go ahead and active our own audio session since |activate| is true. |
// Use a category which supports simultaneous recording and playback. |
// By default, using this category implies that our app’s audio is |
// nonmixable, hence activating the session will interrupt any other |