From ec807d394472db58df2ec210bc4f485d80475197 Mon Sep 17 00:00:00 2001 From: csantosm <4a.santos@gmail.com> Date: Fri, 31 Mar 2023 14:37:22 +0200 Subject: [PATCH] openvidu-browser: Fixed bug with audio only MediaStream If a MediaStream is published with video track stopped and a standard audio track, the video was not playing because the video track of subscriber was enabled. This track must be disabled for allowing play the video. Issue reference: https://openvidu.discourse.group/t/microphone-doesnt-work-correctly-on-web-from-a-mobile-device/4514 --- openvidu-browser/src/OpenVidu/Session.ts | 4 ++++ openvidu-browser/src/OpenVidu/Stream.ts | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/openvidu-browser/src/OpenVidu/Session.ts b/openvidu-browser/src/OpenVidu/Session.ts index ed87035e..7e4a9542 100644 --- a/openvidu-browser/src/OpenVidu/Session.ts +++ b/openvidu-browser/src/OpenVidu/Session.ts @@ -992,6 +992,10 @@ export class Session extends EventDispatcher { oldValue = stream.videoActive; event.newValue = event.newValue === 'true'; stream.videoActive = event.newValue; + const videoTrack = stream.getMediaStream().getVideoTracks()[0]; + if(!videoTrack.enabled && stream.videoActive){ + videoTrack.enabled = true; + } break; case 'videoTrack': event.newValue = JSON.parse(event.newValue); diff --git a/openvidu-browser/src/OpenVidu/Stream.ts b/openvidu-browser/src/OpenVidu/Stream.ts index 7b86e86d..9ec14929 100644 --- a/openvidu-browser/src/OpenVidu/Stream.ts +++ b/openvidu-browser/src/OpenVidu/Stream.ts @@ -1481,7 +1481,7 @@ export class Stream { this.mediaStream.getAudioTracks()[0].enabled = enabled; } if (!!this.mediaStream.getVideoTracks()[0]) { - const enabled = reconnect ? this.videoActive : !!(this.streamManager as Subscriber).properties.subscribeToVideo; + const enabled = reconnect ? this.videoActive : !!this.videoActive && !!(this.streamManager as Subscriber).properties.subscribeToVideo; this.mediaStream.getVideoTracks()[0].enabled = enabled; } }