From 588f17b97899c9c7b4e9f74fa503be3f2ef0f108 Mon Sep 17 00:00:00 2001 From: Koushik Dutta Date: Tue, 5 Apr 2022 13:22:36 -0700 Subject: [PATCH] core: fix firefox in beta --- plugins/core/package-lock.json | 4 ++-- plugins/core/package.json | 2 +- plugins/core/ui/src/common/camera.ts | 31 ++++++++++++++-------------- 3 files changed, 19 insertions(+), 18 deletions(-) diff --git a/plugins/core/package-lock.json b/plugins/core/package-lock.json index 5f24557e5..7f54feb88 100644 --- a/plugins/core/package-lock.json +++ b/plugins/core/package-lock.json @@ -1,12 +1,12 @@ { "name": "@scrypted/core", - "version": "0.0.233", + "version": "0.0.234", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@scrypted/core", - "version": "0.0.233", + "version": "0.0.234", "license": "Apache-2.0", "dependencies": { "@koush/wrtc": "^0.5.3", diff --git a/plugins/core/package.json b/plugins/core/package.json index 5f09f0d99..267bfdfc7 100644 --- a/plugins/core/package.json +++ b/plugins/core/package.json @@ -1,6 +1,6 @@ { "name": "@scrypted/core", - "version": "0.0.233", + "version": "0.0.234", "description": "Scrypted Core plugin. Provides the UI, websocket, and engine.io APIs.", "author": "Scrypted", "license": "Apache-2.0", diff --git a/plugins/core/ui/src/common/camera.ts b/plugins/core/ui/src/common/camera.ts index 6b18511b9..b81f8a74d 100644 --- a/plugins/core/ui/src/common/camera.ts +++ b/plugins/core/ui/src/common/camera.ts @@ -15,24 +15,25 @@ export async function streamRecorder(mediaManager: MediaManager, device: Scrypte } export async function streamMedia(device: RTCSignalingChannel, getVideo: () => HTMLVideoElement) { - const pc = new RTCPeerConnection(); + return new Promise(resolve => { + const session = new BrowserSignalingSession(async (pc) => { - const session = new BrowserSignalingSession(pc); + pc.ontrack = ev => { + const mediaStream = new MediaStream( + pc.getReceivers().map((receiver) => receiver.track) + ); + getVideo().srcObject = mediaStream; + const remoteAudio = document.createElement("audio"); + remoteAudio.srcObject = mediaStream; + remoteAudio.play(); + console.log('received track', ev.track); + }; - device.startRTCSignalingSession(session); + resolve(pc); + }); - pc.ontrack = ev => { - const mediaStream = new MediaStream( - pc.getReceivers().map((receiver) => receiver.track) - ); - getVideo().srcObject = mediaStream; - const remoteAudio = document.createElement("audio"); - remoteAudio.srcObject = mediaStream; - remoteAudio.play(); - console.log('received track', ev.track); - }; - - return pc; + device.startRTCSignalingSession(session); + }); } export async function createBlobUrl(mediaManager: MediaManager, mediaObject: MediaObject): Promise {