diff --git a/sdk/objc/native/src/audio/audio_device_ios.mm b/sdk/objc/native/src/audio/audio_device_ios.mm index b59791e6e8..e28b75cce8 100644 --- a/sdk/objc/native/src/audio/audio_device_ios.mm +++ b/sdk/objc/native/src/audio/audio_device_ios.mm @@ -1050,10 +1050,13 @@ int32_t AudioDeviceIOS::MicrophoneMuteIsAvailable(bool& available) { } int32_t AudioDeviceIOS::SetMicrophoneMute(bool enable) { - OSStatus result = audio_unit_->SetMicrophoneMute(enable); - if (result != noErr) { - RTCLogError(@"Set microphone %s failed, reason %d", enable ? "mute" : "unmute", result); - return -1; + // Set microphone mute only if the audio unit is started. + if (audio_unit_ && audio_unit_->GetState() == VoiceProcessingAudioUnit::kStarted) { + BOOL result = audio_unit_->SetMicrophoneMute(enable); + if (!result) { + RTCLogError(@"Set microphone %s failed.", enable ? "mute" : "unmute"); + return -1; + } } return 0; }