import { useEffect, useRef } from 'react'; import Hls from 'hls.js'; interface HLSVideoProps { src: string; className?: string; } export default function HLSVideo({ src, className = '' }: HLSVideoProps) { const videoRef = useRef(null); useEffect(() => { const video = videoRef.current; if (!video) return; if (Hls.isSupported()) { const hls = new Hls({ enableWorker: true, lowLatencyMode: false, }); hls.loadSource(src); hls.attachMedia(video); hls.on(Hls.Events.MANIFEST_PARSED, () => { video.play().catch(() => {}); }); return () => hls.destroy(); } else if (video.canPlayType('application/vnd.apple.mpegurl')) { video.src = src; video.addEventListener('loadedmetadata', () => { video.play().catch(() => {}); }); } }, [src]); return (