From 1ae69bd9722482690c956bee54c36bc0a73f861f Mon Sep 17 00:00:00 2001 From: rucky Date: Wed, 29 Dec 2021 18:28:44 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E6=8E=88=E6=9D=83=E9=83=A8?= =?UTF-8?q?=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/page/index/HandTrack/index.vue | 30 ++++++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/src/page/index/HandTrack/index.vue b/src/page/index/HandTrack/index.vue index 2c7d889..81ed33d 100644 --- a/src/page/index/HandTrack/index.vue +++ b/src/page/index/HandTrack/index.vue @@ -192,10 +192,29 @@ export default { .getUserMedia(constraints) .then((stream) => { if (stream) { - const tracks = stream.getTracks(); - tracks.forEach(function (track) { - track.stop(); - }); + if (typeof stream.stop === "function") { + stream.stop(); + } else { + let trackList = [ + stream.getAudioTracks(), + stream.getVideoTracks(), + ]; + for (let i = 0; i < trackList.length; i++) { + let tracks = trackList[i]; + if (tracks && tracks.length > 0) { + for (let j = 0; j < tracks.length; j++) { + let track = tracks[j]; + if (typeof track.stop === "function") { + track.stop(); + } + } + } + } + } + // const tracks = stream.getTracks(); + // tracks.forEach(function (track) { + // track.stop(); + // }); // stopStreamTracks(stream); return true; @@ -686,6 +705,7 @@ export default { }, // 更新场景内元素的位置 updatePosition(x, y, scale) { + if (!this.renderer_) return; gsap.to(this.renderer_.domElement, { autoAlpha: 1 }); if (this.mesh_) { @@ -713,6 +733,7 @@ export default { }, // hide all hideAll() { + if (!this.renderer_) return; gsap.to(this.renderer_.domElement, { autoAlpha: 0 }); }, animate() { @@ -721,6 +742,7 @@ export default { }, // THREE canvas render Render() { + if (!this.renderer_) return; this.stats.update(); this.renderer_.render(this.scene_, this.camera_); if (this.lineBox) {