@werk1/w1-system-videoblock
Version:
Universal video player supporting YouTube, Vimeo, HLS, DASH with coordination and GSAP integration for W1 System
29 lines (28 loc) • 1.42 kB
TypeScript
import React from "react";
import type { W1VideoPlayerState } from "../../../types";
import { type DashPlayer } from "../streaming-utils/platforms/dash";
import { type HLSPlayer } from "../streaming-utils/platforms/hls";
import type { VimeoPlayer, YouTubePlayer } from "../streaming-utils/types";
interface UseStreamingSetupProps {
src: string;
isClient: boolean;
enableStreamingLibs: boolean;
autoplay: boolean;
muted: boolean;
loop: boolean;
videoRef: React.RefObject<HTMLVideoElement | null>;
externalPlayerContainerRef: React.RefObject<HTMLDivElement | null>;
onReady?: (video: HTMLVideoElement) => void;
onError?: (error: MediaError | null) => void;
onStateChange?: (state: W1VideoPlayerState) => void;
setState: React.Dispatch<React.SetStateAction<W1VideoPlayerState>>;
setIsStreamingActive: React.Dispatch<React.SetStateAction<boolean>>;
}
interface StreamingPlayers {
hlsPlayerRef: React.RefObject<HLSPlayer | null>;
dashPlayerRef: React.RefObject<DashPlayer | null>;
youtubePlayerRef: React.RefObject<YouTubePlayer | null>;
vimeoPlayerRef: React.RefObject<VimeoPlayer | null>;
}
export declare const useStreamingSetup: ({ src, isClient, enableStreamingLibs, autoplay, muted, loop, videoRef, externalPlayerContainerRef, onReady, onError, onStateChange, setState, setIsStreamingActive, }: UseStreamingSetupProps) => StreamingPlayers;
export {};