diff --git a/modules/audio_device/ios/audio_device_ios.mm b/modules/audio_device/ios/audio_device_ios.mm index f8aae2efe6..7e3d8f2181 100644 --- a/modules/audio_device/ios/audio_device_ios.mm +++ b/modules/audio_device/ios/audio_device_ios.mm @@ -846,6 +846,7 @@ bool AudioDeviceIOS::InitPlayOrRecord() { if (![session beginWebRTCSession:&error]) { [session unlockForConfiguration]; RTCLogError(@"Failed to begin WebRTC session: %@", error.localizedDescription); + audio_unit_.reset(); return false; } @@ -857,6 +858,7 @@ bool AudioDeviceIOS::InitPlayOrRecord() { // audio session during or after a Media Services failure. // See AVAudioSessionErrorCodeMediaServicesFailed for details. [session unlockForConfiguration]; + audio_unit_.reset(); return false; } SetupAudioBuffersForActiveAudioSession(); diff --git a/sdk/objc/Framework/Native/src/audio/audio_device_ios.mm b/sdk/objc/Framework/Native/src/audio/audio_device_ios.mm index 053ffdb3fd..bb0a352f7d 100644 --- a/sdk/objc/Framework/Native/src/audio/audio_device_ios.mm +++ b/sdk/objc/Framework/Native/src/audio/audio_device_ios.mm @@ -861,6 +861,7 @@ bool AudioDeviceIOS::InitPlayOrRecord() { if (![session beginWebRTCSession:&error]) { [session unlockForConfiguration]; RTCLogError(@"Failed to begin WebRTC session: %@", error.localizedDescription); + audio_unit_.reset(); return false; } @@ -872,6 +873,7 @@ bool AudioDeviceIOS::InitPlayOrRecord() { // audio session during or after a Media Services failure. // See AVAudioSessionErrorCodeMediaServicesFailed for details. [session unlockForConfiguration]; + audio_unit_.reset(); return false; } SetupAudioBuffersForActiveAudioSession();