import { h, Fragment } from 'preact'; import { usePersistence } from '../context'; import ActivityIndicator from '../components/ActivityIndicator'; import JSMpegPlayer from '../components/JSMpegPlayer'; import Heading from '../components/Heading'; import WebRtcPlayer from '../components/WebRtcPlayer'; import MsePlayer from '../components/MsePlayer'; import useSWR from 'swr'; export default function Birdseye() { const { data: config } = useSWR('config'); const [viewSource, setViewSource, sourceIsLoaded] = usePersistence('birdseye-source', 'mse'); const sourceValues = ['mse', 'webrtc', 'jsmpeg']; if (!config || !sourceIsLoaded) { return ; } let player; if (viewSource == 'mse' && config.birdseye.restream) { if ('MediaSource' in window) { player = (
); } else { player = (
MSE is not supported on iOS devices. You'll need to use jsmpeg or webRTC. See the docs for more info.
); } } else if (viewSource == 'webrtc' && config.birdseye.restream) { player = (
); } else { player = (
); } return (
Birdseye {config.birdseye.restream && ( )}
{player}
); }