diff --git a/js/MediaStream.js b/js/MediaStream.js index cb47b1f1..415a1ff8 100644 --- a/js/MediaStream.js +++ b/js/MediaStream.js @@ -184,7 +184,7 @@ MediaStream.create = function (dataFromEvent) { for (trackId in dataFromEvent.audioTracks) { if (dataFromEvent.audioTracks.hasOwnProperty(trackId)) { - track = new MediaStreamTrack(dataFromEvent.audioTracks[trackId]); + track = MediaStreamTrack.findOrCreate(dataFromEvent.audioTracks[trackId]); stream._audioTracks[track.id] = track; @@ -194,7 +194,7 @@ MediaStream.create = function (dataFromEvent) { for (trackId in dataFromEvent.videoTracks) { if (dataFromEvent.videoTracks.hasOwnProperty(trackId)) { - track = new MediaStreamTrack(dataFromEvent.videoTracks[trackId]); + track = MediaStreamTrack.findOrCreate(dataFromEvent.videoTracks[trackId]); stream._videoTracks[track.id] = track; @@ -462,7 +462,7 @@ function onEvent(data) { track = this._videoTracks[data.track.id]; } if (!track) { - track = new MediaStreamTrack(data.track); + track = MediaStreamTrack.findOrCreate(data.track); if (track.kind === 'audio') { this._audioTracks[track.id] = track; } else if (track.kind === 'video') { diff --git a/js/RTCPeerConnection.js b/js/RTCPeerConnection.js index d8cebef1..dc4f1f96 100644 --- a/js/RTCPeerConnection.js +++ b/js/RTCPeerConnection.js @@ -957,7 +957,7 @@ function onEvent(data) { break; case 'track': - var track = (event.track = new MediaStreamTrack(data.track)); + var track = (event.track = MediaStreamTrack.findOrCreate(data.track)); event.receiver = new RTCRtpReceiver(self, { track: track }); transceiver = this.transceivers.find((t) => t.receiver.track.id === track.id); diff --git a/www/cordova-plugin-iosrtc.js b/www/cordova-plugin-iosrtc.js index e65b5a2c..659318a5 100644 --- a/www/cordova-plugin-iosrtc.js +++ b/www/cordova-plugin-iosrtc.js @@ -389,7 +389,7 @@ MediaStream.create = function (dataFromEvent) { for (trackId in dataFromEvent.audioTracks) { if (dataFromEvent.audioTracks.hasOwnProperty(trackId)) { - track = new MediaStreamTrack(dataFromEvent.audioTracks[trackId]); + track = MediaStreamTrack.findOrCreate(dataFromEvent.audioTracks[trackId]); stream._audioTracks[track.id] = track; @@ -399,7 +399,7 @@ MediaStream.create = function (dataFromEvent) { for (trackId in dataFromEvent.videoTracks) { if (dataFromEvent.videoTracks.hasOwnProperty(trackId)) { - track = new MediaStreamTrack(dataFromEvent.videoTracks[trackId]); + track = MediaStreamTrack.findOrCreate(dataFromEvent.videoTracks[trackId]); stream._videoTracks[track.id] = track; @@ -667,7 +667,7 @@ function onEvent(data) { track = this._videoTracks[data.track.id]; } if (!track) { - track = new MediaStreamTrack(data.track); + track = MediaStreamTrack.findOrCreate(data.track); if (track.kind === 'audio') { this._audioTracks[track.id] = track; } else if (track.kind === 'video') { @@ -2875,7 +2875,7 @@ function onEvent(data) { break; case 'track': - var track = (event.track = new MediaStreamTrack(data.track)); + var track = (event.track = MediaStreamTrack.findOrCreate(data.track)); event.receiver = new RTCRtpReceiver(self, { track: track }); transceiver = this.transceivers.find((t) => t.receiver.track.id === track.id);