A small web app for watching movies and shows easily
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

30 lines
945 B

import { useVideoPlayerDescriptor } from "@/video/state/hooks";
import { setProvider, unsetStateProvider } from "@/video/state/providers/utils";
import { createVideoStateProvider } from "@/video/state/providers/videoStateProvider";
import { useEffect, useRef } from "react";
export function VideoElementInternal() {
const descriptor = useVideoPlayerDescriptor();
const ref = useRef<HTMLVideoElement>(null);
useEffect(() => {
if (!ref.current) return;
const provider = createVideoStateProvider(descriptor, ref.current);
setProvider(descriptor, provider);
const { destroy } = provider.providerStart();
return () => {
unsetStateProvider(descriptor);
destroy();
};
}, [descriptor]);
// TODO autoplay and muted
return (
<video
ref={ref}
playsInline
className="h-full w-full"
src="http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/Sintel.mp4"
/>
);
}