diff --git a/src/main/java/eu/siacs/conversations/xmpp/jingle/WebRTCWrapper.java b/src/main/java/eu/siacs/conversations/xmpp/jingle/WebRTCWrapper.java index 58314e0fcfeeef15d47c0100612896a55a3dfd8d..2a3c3f9104874f17f1e86a4d5db31c5c3346a868 100644 --- a/src/main/java/eu/siacs/conversations/xmpp/jingle/WebRTCWrapper.java +++ b/src/main/java/eu/siacs/conversations/xmpp/jingle/WebRTCWrapper.java @@ -549,8 +549,14 @@ public class WebRTCWrapper { } boolean setMicrophoneEnabled(final boolean enabled) { - final Optional audioTrack = - TrackWrapper.get(peerConnection, this.localAudioTrack); + Optional audioTrack = null; + try { + audioTrack = TrackWrapper.get(peerConnection, this.localAudioTrack); + } catch (final IllegalStateException e) { + Log.d(Config.LOGTAG, "unable to toggle microphone", e); + // ignoring race condition in case sender has been disposed + return false; + } if (audioTrack.isPresent()) { try { audioTrack.get().setEnabled(enabled);