@globis/player
Version:
GLOBIS React Video Player.
71 lines (70 loc) • 2.82 kB
TypeScript
/// <reference types="react" />
/// <reference types="@emotion/core" />
import ReactPlayer, { ReactPlayerProps } from 'react-player';
import { PLAYBACK_RATE, QUALITIES } from './constants';
declare type Option = {
label: string;
value: string | number;
};
declare type Time = {
label: string;
value: number;
};
declare type Source = {
quality: number;
src: string;
};
declare type DefaultValues = {
isMuted?: boolean;
playbackRate?: PLAYBACK_RATE;
isPlaying?: boolean;
quality?: QUALITIES;
isShowingTracks?: boolean;
volume?: number;
};
export declare type Arguments = DefaultValues & Pick<ReactPlayerProps, 'onStart' | 'onEnded'> & {
onSubtitleClick?: React.MouseEventHandler<HTMLButtonElement>;
onMuteClick?: React.MouseEventHandler<HTMLButtonElement>;
onPlaybackRateChange?: (playbackRate: PLAYBACK_RATE) => void;
onQualityChange?: (qualities: QUALITIES) => void;
onVolumeChange?: (value: string) => void;
sources: Source[];
};
export declare const usePlayer: ({ onSubtitleClick: onEnhancedSubtitleClick, onMuteClick: onEnhancedMuteClick, onPlaybackRateChange: onEnhancedPlaybackRateChange, onQualityChange: onEnhancedQualityChange, onStart: onEnhancedStart, onEnded: onEnhancedEnded, onVolumeChange: onEnhancedVolumeChange, sources, ...props }: Arguments) => {
currentQuality: Option;
currentSource: Source;
currentTime: Time;
duration: Time;
hasChangedQuality: boolean;
internalVideoRef: import("react").RefObject<HTMLVideoElement>;
isFullscreen: boolean;
isMuted: boolean;
isPlaying: boolean;
isShowingTracks: boolean;
isUserIdle: boolean;
onSubtitleClick: (event: import("react").MouseEvent<HTMLButtonElement, MouseEvent>) => void;
onContextMenu: (event: import("react").MouseEvent<HTMLVideoElement, MouseEvent>) => void;
onDuration: (duration: number) => void;
onEnded: () => void;
onFullscreenChange: (nextValue?: any) => void;
onMuteClick: (event: import("react").MouseEvent<HTMLButtonElement, MouseEvent>) => void;
onPlayClick: (nextValue?: any) => void;
onPlaybackRateChange: (option: Option) => void;
onProgress: (state: {
played: number;
playedSeconds: number;
loaded: number;
loadedSeconds: number;
}) => void;
onQualityChange: (option: Option) => void;
onReady: (savedCurrentTime: number) => void;
onSeek: (event: import("react").ChangeEvent<HTMLInputElement>) => void;
onStart: (hasChangedQuality: boolean) => void;
onVolumeChange: (event: import("react").ChangeEvent<HTMLInputElement>) => void;
playbackRate: Option;
savedCurrentTime: number;
videoRef: import("react").RefObject<ReactPlayer>;
volume: number;
wrapperRef: import("react").RefObject<HTMLDivElement>;
};
export {};