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 2a3c3f9104874f17f1e86a4d5db31c5c3346a868..4dd97c0ce82aeab39329aaf85adb97955478609d 100644 --- a/src/main/java/eu/siacs/conversations/xmpp/jingle/WebRTCWrapper.java +++ b/src/main/java/eu/siacs/conversations/xmpp/jingle/WebRTCWrapper.java @@ -533,8 +533,14 @@ public class WebRTCWrapper { } boolean isMicrophoneEnabled() { - 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 check microphone", e); + // ignoring race condition in case sender has been disposed + return false; + } if (audioTrack.isPresent()) { try { return audioTrack.get().enabled();