UNPKG

@werk1/w1-system-videoblock

Version:

Universal video player supporting YouTube, Vimeo, HLS, DASH with coordination and GSAP integration for W1 System

33 lines (32 loc) 1.53 kB
import React from "react"; import type { W1VideoPlayerState } from "../../../types"; import type { VimeoPlayer, YouTubePlayer } from "../streaming-utils/types"; interface UseVideoControlsProps { videoRef: React.RefObject<HTMLVideoElement>; youtubePlayerRef: React.RefObject<YouTubePlayer | null>; vimeoPlayerRef: React.RefObject<VimeoPlayer | null>; state: W1VideoPlayerState; setState: React.Dispatch<React.SetStateAction<W1VideoPlayerState>>; skipIntervals: number; enableKeyboardControls: boolean; onProgress?: (progress: number) => void; onTimeUpdate?: (currentTime: number) => void; onVolumeChange?: (volume: number) => void; onPlaybackRateChange?: (rate: number) => void; } export declare const useVideoControls: ({ videoRef, youtubePlayerRef, vimeoPlayerRef, state, setState, skipIntervals, enableKeyboardControls, onProgress, onTimeUpdate, onVolumeChange, onPlaybackRateChange, }: UseVideoControlsProps) => { controlsRef: React.RefObject<HTMLDivElement | null>; handlePlay: () => Promise<void>; handlePause: () => Promise<void>; handlePlayPause: () => void; handleVolumeChange: (newVolume: number) => void; handleMute: () => void; handleSeek: (newTime: number) => void; handleSkipBackward: () => void; handleSkipForward: () => void; handlePlaybackRateChange: (newRate: number) => void; handleFullscreen: () => Promise<void>; handleMobileFullscreen: () => Promise<void>; handlePictureInPicture: () => Promise<void>; }; export {};