UNPKG

@mediafox/react

Version:

React hooks for MediaFox media player

68 lines 2.8 kB
import type { LoadOptions, MediaFox, MediaSource, PlayerEventListener, PlayerOptions, PlayerStateData, RendererType, ScreenshotOptions, SeekOptions } from '@mediafox/core'; export interface UseMediaFoxOptions extends PlayerOptions { onLoadStart?: PlayerEventListener<'loadstart'>; onLoadedMetadata?: PlayerEventListener<'loadedmetadata'>; onLoadedData?: PlayerEventListener<'loadeddata'>; onCanPlay?: PlayerEventListener<'canplay'>; onCanPlayThrough?: PlayerEventListener<'canplaythrough'>; onPlay?: PlayerEventListener<'play'>; onPause?: PlayerEventListener<'pause'>; onPlaying?: PlayerEventListener<'playing'>; onEnded?: PlayerEventListener<'ended'>; onTimeUpdate?: PlayerEventListener<'timeupdate'>; onDurationChange?: PlayerEventListener<'durationchange'>; onVolumeChange?: PlayerEventListener<'volumechange'>; onRateChange?: PlayerEventListener<'ratechange'>; onSeeking?: PlayerEventListener<'seeking'>; onSeeked?: PlayerEventListener<'seeked'>; onWaiting?: PlayerEventListener<'waiting'>; onProgress?: PlayerEventListener<'progress'>; onError?: PlayerEventListener<'error'>; onWarning?: PlayerEventListener<'warning'>; onTrackChange?: PlayerEventListener<'trackchange'>; onStateChange?: PlayerEventListener<'statechange'>; onRendererChange?: PlayerEventListener<'rendererchange'>; onRendererFallback?: PlayerEventListener<'rendererfallback'>; } export interface UseMediaFoxReturn { player: MediaFox | null; state: PlayerStateData | null; load: (source: MediaSource, options?: LoadOptions) => Promise<void>; play: () => Promise<void>; pause: () => void; seek: (time: number, options?: SeekOptions) => Promise<void>; stop: () => Promise<void>; screenshot: (options?: ScreenshotOptions) => Promise<Blob | null>; setRenderTarget: (canvas: HTMLCanvasElement | OffscreenCanvas) => Promise<void>; switchRenderer: (type: RendererType) => Promise<void>; rendererType: RendererType | null; } /** * React hook for MediaFox media player. * Creates and manages a MediaFox instance with automatic cleanup. * * @example * ```tsx * function VideoPlayer() { * const canvasRef = useRef<HTMLCanvasElement>(null); * const { player, state, play, pause, load } = useMediaFox({ * renderTarget: canvasRef.current, * onError: (error) => console.error(error) * }); * * useEffect(() => { * load('/video.mp4'); * }, [load]); * * return ( * <div> * <canvas ref={canvasRef} /> * <button onClick={play}>Play</button> * <button onClick={pause}>Pause</button> * </div> * ); * } * ``` */ export declare function useMediaFox(options?: UseMediaFoxOptions): UseMediaFoxReturn; //# sourceMappingURL=useMediaFox.d.ts.map