From d40285ccc536b7d2b14bd62fa439561c2ead9cde Mon Sep 17 00:00:00 2001 From: Martin Schleyer Date: Mon, 13 Aug 2018 10:37:55 +0200 Subject: [PATCH] Fix issue 107 --- openvidu-browser/src/OpenVidu/OpenVidu.ts | 1 + openvidu-browser/src/OpenVidu/Publisher.ts | 2 +- openvidu-browser/src/OpenVidu/Stream.ts | 29 ++++++++++++++----- .../Interfaces/Public/PublisherProperties.ts | 6 ++++ .../OpenViduInternal/WebRtcPeer/WebRtcPeer.ts | 10 ++++--- 5 files changed, 36 insertions(+), 12 deletions(-) diff --git a/openvidu-browser/src/OpenVidu/OpenVidu.ts b/openvidu-browser/src/OpenVidu/OpenVidu.ts index 0810d715..b0d6b456 100644 --- a/openvidu-browser/src/OpenVidu/OpenVidu.ts +++ b/openvidu-browser/src/OpenVidu/OpenVidu.ts @@ -189,6 +189,7 @@ export class OpenVidu { publishVideo: (typeof properties.publishVideo !== 'undefined') ? properties.publishVideo : true, resolution: this.isMediaStreamTrack(properties.videoSource) ? undefined : ((typeof properties.resolution !== 'undefined') ? properties.resolution : '640x480'), videoSource: (typeof properties.videoSource !== 'undefined') ? properties.videoSource : undefined, + keepTracksOnDispose: (typeof properties.videoSource !== 'undefined') ? properties.keepTracksOnDispose : false, filter: properties.filter }; } else { diff --git a/openvidu-browser/src/OpenVidu/Publisher.ts b/openvidu-browser/src/OpenVidu/Publisher.ts index 0b4ddf13..58badc08 100644 --- a/openvidu-browser/src/OpenVidu/Publisher.ts +++ b/openvidu-browser/src/OpenVidu/Publisher.ts @@ -74,7 +74,7 @@ export class Publisher extends StreamManager { constructor(targEl: string | HTMLElement, properties: PublisherProperties, openvidu: OpenVidu) { super(new Stream((!!openvidu.session) ? openvidu.session : new Session(openvidu), { publisherProperties: properties, mediaConstraints: {} }), targEl); this.properties = properties; - this.openvidu = openvidu; + this.openvidu = openvidu; this.stream.ee.on('local-stream-destroyed', (reason: string) => { this.stream.isLocalStreamPublished = false; diff --git a/openvidu-browser/src/OpenVidu/Stream.ts b/openvidu-browser/src/OpenVidu/Stream.ts index efed8c21..758220aa 100644 --- a/openvidu-browser/src/OpenVidu/Stream.ts +++ b/openvidu-browser/src/OpenVidu/Stream.ts @@ -117,6 +117,16 @@ export class Stream implements EventDispatcher { } } = {}; + /** + * Keeps tracks unstopped on disposal. Allows to keep tracks running if session is diposed + * + * This property may be useful if a publisher is started with a previously existing + * track which should keep running after disposal, e.g. if you start your webcam + * in a