From 03a5820140d490e852962087f0131e9520d81987 Mon Sep 17 00:00:00 2001 From: kieran Date: Tue, 19 Nov 2024 17:14:16 +0000 Subject: [PATCH] feat: n94 poc --- package.json | 1 + src/element/stream/live-video-player.tsx | 15 ++- src/element/stream/n94-player.tsx | 158 +++++++++++++++++++++++ src/hooks/live-streams.ts | 16 ++- src/hooks/useLiveStreams.ts | 14 +- src/pages/link-handler.tsx | 6 +- src/pages/stream-page.tsx | 22 ++-- src/utils.ts | 14 +- yarn.lock | 25 ++++ 9 files changed, 243 insertions(+), 28 deletions(-) create mode 100644 src/element/stream/n94-player.tsx diff --git a/package.json b/package.json index 8bad46c..0b08ad3 100644 --- a/package.json +++ b/package.json @@ -24,6 +24,7 @@ "hls-video-element": "^1.2.7", "marked": "^12.0.2", "media-chrome": "^3.2.4", + "mpegts.js": "^1.7.3", "qr-code-styling": "^1.6.0-rc.1", "react": "^18.3.1", "react-confetti": "^6.1.0", diff --git a/src/element/stream/live-video-player.tsx b/src/element/stream/live-video-player.tsx index 4307d23..11b6c03 100644 --- a/src/element/stream/live-video-player.tsx +++ b/src/element/stream/live-video-player.tsx @@ -20,6 +20,8 @@ import { } from "media-chrome/react"; import "hls-video-element"; import { StreamState } from "@/const"; +import Nip94Player from "./n94-player"; +import { NostrLink } from "@snort/system"; type VideoPlayerProps = { title?: string; @@ -27,9 +29,17 @@ type VideoPlayerProps = { stream?: string; poster?: string; muted?: boolean; + link: NostrLink; } & HTMLProps; -export default function LiveVideoPlayer({ title, stream, status, poster, ...props }: VideoPlayerProps) { +export default function LiveVideoPlayer({ title, stream, status, poster, link, ...props }: VideoPlayerProps) { + function innerPlayer() { + if (stream === "nip94") { + return + } + {/* @ts-ignore Web Componenet */ } + return + } return ( {title} - {/* @ts-ignore Web Componenet */} - + {innerPlayer()}