From 27e686271ec3e509deaa4363398aa36f3b18ac19 Mon Sep 17 00:00:00 2001 From: csantosm <4a.santos@gmail.com> Date: Thu, 18 Aug 2022 13:51:37 +0200 Subject: [PATCH] openvidu-components: Fixed replaced track after mute camera openvidu-browser needs a mediaStreamTrack param if a custom was assigned before mute video track releasing resources. --- .../src/lib/services/openvidu/openvidu.service.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/openvidu-components-angular/projects/openvidu-angular/src/lib/services/openvidu/openvidu.service.ts b/openvidu-components-angular/projects/openvidu-angular/src/lib/services/openvidu/openvidu.service.ts index 9afede83..3971646d 100644 --- a/openvidu-components-angular/projects/openvidu-angular/src/lib/services/openvidu/openvidu.service.ts +++ b/openvidu-components-angular/projects/openvidu-angular/src/lib/services/openvidu/openvidu.service.ts @@ -287,7 +287,15 @@ export class OpenViduService { */ private async publishVideoAux(publisher: Publisher, publish: boolean): Promise { if (!!publisher) { - await publisher.publishVideo(publish, true); + let resource: boolean | MediaStreamTrack = true; + if(publish){ + // Forcing restoration with a custom media stream (the older one instead the default) + const currentDeviceId = this.deviceService.getCameraSelected()?.device; + const mediaStream = await this.createMediaStream({videoSource: currentDeviceId, audioSource: false}); + resource = mediaStream.getVideoTracks()[0]; + } + + await publisher.publishVideo(publish, resource); this.participantService.updateLocalParticipant(); } }