diff --git a/apps/multiplatform/common/src/commonMain/resources/assets/www/call.js b/apps/multiplatform/common/src/commonMain/resources/assets/www/call.js index b5dcc9a2c2..d818f04d44 100644 --- a/apps/multiplatform/common/src/commonMain/resources/assets/www/call.js +++ b/apps/multiplatform/common/src/commonMain/resources/assets/www/call.js @@ -530,10 +530,10 @@ const processCommand = (function () { if (!videos) throw Error("no video elements"); await setupEncryptionWorker(call); - setupRemoteStream(call); videos.localScreen.srcObject = call.localScreenStream; videos.remote.srcObject = call.remoteStream; videos.remoteScreen.srcObject = call.remoteScreenStream; + setupRemoteStream(call); // videos.localScreen.play() // For example, exception can be: NotAllowedError: play() failed because the user didn't interact with the document first videos.remote.play().catch((e) => console.log(e)); @@ -661,11 +661,14 @@ const processCommand = (function () { } setupMuteUnmuteListener(event.transceiver, track); const mediaSource = mediaSourceFromTransceiverMid(event.transceiver.mid); + const videos = getVideoElements(); if (mediaSource == CallMediaSource.ScreenAudio || mediaSource == CallMediaSource.ScreenVideo) { call.remoteScreenStream.addTrack(track); + videos === null || videos === void 0 ? void 0 : videos.remoteScreen.play().catch((e) => console.log(e)); } else { call.remoteStream.addTrack(track); + videos === null || videos === void 0 ? void 0 : videos.remote.play().catch((e) => console.log(e)); } console.log(`ontrack success`); } diff --git a/packages/simplex-chat-webrtc/src/call.ts b/packages/simplex-chat-webrtc/src/call.ts index 793bc8e5c2..f0a2439ff1 100644 --- a/packages/simplex-chat-webrtc/src/call.ts +++ b/packages/simplex-chat-webrtc/src/call.ts @@ -775,11 +775,11 @@ const processCommand = (function () { const videos = getVideoElements() if (!videos) throw Error("no video elements") await setupEncryptionWorker(call) - setupRemoteStream(call) videos.localScreen.srcObject = call.localScreenStream videos.remote.srcObject = call.remoteStream videos.remoteScreen.srcObject = call.remoteScreenStream + setupRemoteStream(call) // videos.localScreen.play() // For example, exception can be: NotAllowedError: play() failed because the user didn't interact with the document first videos.remote.play().catch((e) => console.log(e)) @@ -927,10 +927,13 @@ const processCommand = (function () { setupMuteUnmuteListener(event.transceiver, track) const mediaSource = mediaSourceFromTransceiverMid(event.transceiver.mid) + const videos = getVideoElements() if (mediaSource == CallMediaSource.ScreenAudio || mediaSource == CallMediaSource.ScreenVideo) { call.remoteScreenStream.addTrack(track) + videos?.remoteScreen.play().catch((e) => console.log(e)) } else { call.remoteStream.addTrack(track) + videos?.remote.play().catch((e) => console.log(e)) } console.log(`ontrack success`) } catch (e) {