From e9e7ec80af0d2cae67c9dcf2cef64ca54a731046 Mon Sep 17 00:00:00 2001 From: Xe Iaso Date: Sat, 1 Apr 2023 18:25:27 -0400 Subject: move video component to a dynamic Xeact component Signed-off-by: Xe Iaso --- src/frontend/components/Video.tsx | 40 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 src/frontend/components/Video.tsx (limited to 'src/frontend/components') diff --git a/src/frontend/components/Video.tsx b/src/frontend/components/Video.tsx new file mode 100644 index 0000000..812e6bd --- /dev/null +++ b/src/frontend/components/Video.tsx @@ -0,0 +1,40 @@ +// @jsxImportSource xeact +// @jsxRuntime automatic + +import Hls from "@hls.js"; + +export interface VideoProps { + path: string; +} + +export default function Video({ path }: VideoProps) { + const streamURL = + `https://cdn.xeiaso.net/file/christine-static/${path}/index.m3u8`; + const video = ( + + ); + + if (Hls.isSupported()) { + const hls = new Hls(); + hls.on(Hls.Events.MEDIA_ATTACHED, () => { + console.log("video and hls.js are now bound together !"); + }); + hls.on(Hls.Events.MANIFEST_PARSED, (event, data) => { + console.log( + "manifest loaded, found " + data.levels.length + " quality level", + ); + }); + hls.loadSource(streamURL); + hls.attachMedia(video); + } else if (video.canPlayType("application/vnd.apple.mpegurl")) { + video.src = streamURL; + } + + return video; +} -- cgit v1.2.3