From 80a866d4726f78c9760fb8a775dbe924a76123dd Mon Sep 17 00:00:00 2001 From: Avently <7953703+avently@users.noreply.github.com> Date: Fri, 27 Sep 2024 06:05:05 -0700 Subject: [PATCH] android, desktop: fix Safari sound --- .../common/src/commonMain/resources/assets/www/call.js | 5 ++++- packages/simplex-chat-webrtc/src/call.ts | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) 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) {