From ba21531bbae8f44c7d4e859a38646eee78e537b6 Mon Sep 17 00:00:00 2001 From: king <2229249788@qq.com> Date: Fri, 4 Aug 2023 09:46:56 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E7=BB=84=E4=BB=B6=E4=B8=A2?= =?UTF-8?q?=E5=A4=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/video/video.tsx | 46 ++++++++++++---------- src/pages/business/videoInfo/videoInfo.tsx | 6 +-- 2 files changed, 28 insertions(+), 24 deletions(-) diff --git a/src/components/video/video.tsx b/src/components/video/video.tsx index 1b33b42..f845868 100644 --- a/src/components/video/video.tsx +++ b/src/components/video/video.tsx @@ -7,7 +7,12 @@ import unique_ident from "@/hooks/unique_ident"; const deviation: number = 1 const HVideo: FC = (opt: HVideoOptions) => { - const video = Taro.createVideoContext('myVideo') + let video + try { + video = Taro.createVideoContext('myVideo') + } catch (e) { + + } const [currentTime, setCurrentTime] = useState(0) function onTimeUpdate(event: BaseEventOrig) { @@ -15,7 +20,7 @@ const HVideo: FC = (opt: HVideoOptions) => { const time = event.detail.currentTime /** 前进回退 */ if (currentTime + deviation < time) { - video.seek(currentTime) + video?.seek(currentTime) return } setCurrentTime(time) @@ -23,9 +28,9 @@ const HVideo: FC = (opt: HVideoOptions) => { /** 判断是否进入断点 */ opt.breakpoint.forEach(d => { if (time < d + deviation && time > d - deviation) { - video.exitFullScreen() - video.pause() - video.seek(d - deviation) + video?.exitFullScreen() + video?.pause() + video?.seek(d - deviation) opt.onBreakpoint(d) return } @@ -33,8 +38,8 @@ const HVideo: FC = (opt: HVideoOptions) => { } opt.setTime((time: number) => { - video.seek(time) - video.play() + video?.seek(time) + video?.play() }) function onEnded() { @@ -42,28 +47,29 @@ const HVideo: FC = (opt: HVideoOptions) => { if (currentTime + 1 > opt.duration) { opt.onEnded() } else { - video.seek(currentTime) - video.play() + video?.seek(currentTime) + video?.play() } } Taro.useUnload(() => { + video?.stop() unique_ident.put(Number(currentTime.toFixed(2)), Date.now()) }) return ( -