react-all-player
Version:
react-all-player is a simple, lightweight, accessible and customizable React media player that supports modern browsers.
90 lines (89 loc) • 2.59 kB
TypeScript
/**
* TypeScript definitions for YouTube IFrame Player API
* Reference: https://developers.google.com/youtube/iframe_api_reference
*/
export interface YouTubePlayerOptions {
height?: string | number;
width?: string | number;
videoId?: string;
playerVars?: YouTubePlayerVars;
events?: YouTubePlayerEvents;
}
export interface YouTubePlayerVars {
autoplay?: 0 | 1;
cc_lang_pref?: string;
cc_load_policy?: 1;
color?: 'red' | 'white';
controls?: 0 | 1 | 2;
disablekb?: 0 | 1;
enablejsapi?: 0 | 1;
end?: number;
fs?: 0 | 1;
hl?: string;
iv_load_policy?: 1 | 3;
list?: string;
listType?: 'playlist' | 'search' | 'user_uploads';
loop?: 0 | 1;
modestbranding?: 1;
mute?: 0 | 1;
origin?: string;
playlist?: string;
playsinline?: 0 | 1;
rel?: 0 | 1;
showinfo?: 0 | 1;
start?: number;
widget_referrer?: string;
}
export interface YouTubePlayerEvents {
onReady?: (event: YouTubePlayerEvent) => void;
onStateChange?: (event: YouTubePlayerEvent) => void;
onPlaybackQualityChange?: (event: YouTubePlayerEvent) => void;
onPlaybackRateChange?: (event: YouTubePlayerEvent) => void;
onError?: (event: YouTubePlayerEvent) => void;
onApiChange?: (event: YouTubePlayerEvent) => void;
}
export interface YouTubePlayerEvent {
target: YouTubePlayer;
data: any;
}
export declare enum YouTubePlayerState {
UNSTARTED = -1,
ENDED = 0,
PLAYING = 1,
PAUSED = 2,
BUFFERING = 3,
CUED = 5
}
export interface YouTubePlayer {
playVideo(): void;
pauseVideo(): void;
stopVideo(): void;
seekTo(seconds: number, allowSeekAhead: boolean): void;
mute(): void;
unMute(): void;
isMuted(): boolean;
setVolume(volume: number): void;
getVolume(): number;
getPlayerState(): YouTubePlayerState;
getCurrentTime(): number;
getDuration(): number;
getVideoLoadedFraction(): number;
setPlaybackRate(suggestedRate: number): void;
getPlaybackRate(): number;
getAvailablePlaybackRates(): number[];
getAvailableQualityLevels(): string[];
getIframe(): HTMLIFrameElement;
destroy(): void;
}
export interface YouTubeIframeAPI {
Player: {
new (elementId: string | HTMLElement, options: YouTubePlayerOptions): YouTubePlayer;
};
PlayerState: typeof YouTubePlayerState;
}
declare global {
interface Window {
YT?: YouTubeIframeAPI;
onYouTubeIframeAPIReady?: () => void;
}
}