diff --git a/src/call/Call.js b/src/call/Call.js index 3cfd4354d8cfe4b03b0b72556c6a8a3055e42657..eb827cb6818d4dc09987a5a1bd1b57d354f0d565 100644 --- a/src/call/Call.js +++ b/src/call/Call.js @@ -1523,6 +1523,19 @@ class Call { } }); callParticipantData.mediaStream.addTrack(track); + // Safari and FF workaround + if (stream && this.isConference && (isUnifiedPlanSupported() || this.forceUnifiedPlan)) { + stream.onremovetrack = (e) => { + if (this._pc && this._pc.getTransceivers) { + this._pc.getTransceivers().forEach(transceiver => { + if (transceiver.mid === mid) { + transceiver.stop(); + } + }); + } + console.log('[SDK] [webrtc] stream.onremovetrack - audio', e.track.muted, e.track.readyState); + }; + } } callParticipantData.reloadMedia(); }