|
@@ -241,17 +241,40 @@ RTC.prototype.createRemoteTrack = function (event) {
|
241
|
241
|
|
242
|
242
|
/**
|
243
|
243
|
* Removes all JitsiRemoteTracks associated with given MUC nickname (resource
|
244
|
|
- * part of the JID).
|
245
|
|
- * @param resource the resource part of the MUC JID
|
246
|
|
- * @returns {JitsiRemoteTrack|null}
|
|
244
|
+ * part of the JID). Returns array of removed tracks.
|
|
245
|
+ *
|
|
246
|
+ * @param {string} resource - The resource part of the MUC JID.
|
|
247
|
+ * @returns {JitsiRemoteTrack[]}
|
247
|
248
|
*/
|
248
|
249
|
RTC.prototype.removeRemoteTracks = function (resource) {
|
249
|
|
- var remoteTracks = this.remoteTracks[resource];
|
|
250
|
+ var removedTracks = [];
|
|
251
|
+ var removedAudioTrack = this.removeRemoteTrack(resource, MediaType.AUDIO);
|
|
252
|
+ var removedVideoTrack = this.removeRemoteTrack(resource, MediaType.VIDEO);
|
|
253
|
+
|
|
254
|
+ removedAudioTrack && removedTracks.push(removedAudioTrack);
|
|
255
|
+ removedVideoTrack && removedTracks.push(removedVideoTrack);
|
|
256
|
+
|
|
257
|
+ delete this.remoteTracks[resource];
|
250
|
258
|
|
251
|
|
- if(remoteTracks) {
|
252
|
|
- remoteTracks['audio'] && remoteTracks['audio'].dispose();
|
253
|
|
- remoteTracks['video'] && remoteTracks['video'].dispose();
|
254
|
|
- delete this.remoteTracks[resource];
|
|
259
|
+ return removedTracks;
|
|
260
|
+};
|
|
261
|
+
|
|
262
|
+/**
|
|
263
|
+ * Removes specified track type associated with given MUC nickname
|
|
264
|
+ * (resource part of the JID). Returns removed track if any.
|
|
265
|
+ *
|
|
266
|
+ * @param {string} resource - The resource part of the MUC JID.
|
|
267
|
+ * @param {string} mediaType - Type of track to remove.
|
|
268
|
+ * @returns {JitsiRemoteTrack|undefined}
|
|
269
|
+ */
|
|
270
|
+RTC.prototype.removeRemoteTrack = function (resource, mediaType) {
|
|
271
|
+ var remoteTracksForResource = this.remoteTracks[resource];
|
|
272
|
+
|
|
273
|
+ if (remoteTracksForResource && remoteTracksForResource[mediaType]) {
|
|
274
|
+ var track = remoteTracksForResource[mediaType];
|
|
275
|
+ track.dispose();
|
|
276
|
+ delete remoteTracksForResource[mediaType];
|
|
277
|
+ return track;
|
255
|
278
|
}
|
256
|
279
|
};
|
257
|
280
|
|