react-ambilight
Version:
🌈 A lightweight React component for creating an Ambilight effect with YouTube videos.
102 lines (101 loc) • 3.95 kB
TypeScript
export declare enum PlayerStates {
BUFFERING = 3,
ENDED = 0,
PAUSED = 2,
PLAYING = 1,
UNSTARTED = -1,
VIDEO_CUED = 5
}
export type CustomEvent = {
target: YouTubePlayer;
data: any;
};
export type EventType = 'ready' | 'stateChange' | 'playbackQualityChange' | 'playbackRateChange' | 'error' | 'apiChange' | 'volumeChange';
export type YouTubePlayer = {
addEventListener(event: string, listener: (event: CustomEvent) => void): void;
destroy(): void;
getAvailablePlaybackRates(): ReadonlyArray<number>;
getAvailableQualityLevels(): ReadonlyArray<string>;
getCurrentTime(): number;
getDuration(): number;
getIframe(): HTMLIFrameElement;
getOption(module: string, option: string): any;
getOptions(): string[];
getOptions(module: string): object;
setOption(module: string, option: string, value: any): void;
setOptions(): void;
cuePlaylist(playlist: string | ReadonlyArray<string>, index?: number, startSeconds?: number, suggestedQuality?: string): void;
cuePlaylist(playlist: {
listType: string;
list?: string | undefined;
index?: number | undefined;
startSeconds?: number | undefined;
suggestedQuality?: string | undefined;
}): void;
loadPlaylist(playlist: string | ReadonlyArray<string>, index?: number, startSeconds?: number, suggestedQuality?: string): void;
loadPlaylist(playlist: {
listType: string;
list?: string | undefined;
index?: number | undefined;
startSeconds?: number | undefined;
suggestedQuality?: string | undefined;
}): void;
getPlaylist(): ReadonlyArray<string>;
getPlaylistIndex(): number;
getPlaybackQuality(): string;
getPlaybackRate(): number;
getPlayerState(): PlayerStates;
getVideoEmbedCode(): string;
getVideoLoadedFraction(): number;
getVideoUrl(): string;
getVolume(): number;
cueVideoById(videoId: string, startSeconds?: number, suggestedQuality?: string): void;
cueVideoById(video: {
videoId: string;
startSeconds?: number | undefined;
endSeconds?: number | undefined;
suggestedQuality?: string | undefined;
}): void;
cueVideoByUrl(mediaContentUrl: string, startSeconds?: number, suggestedQuality?: string): void;
cueVideoByUrl(video: {
mediaContentUrl: string;
startSeconds?: number | undefined;
endSeconds?: number | undefined;
suggestedQuality?: string | undefined;
}): void;
loadVideoByUrl(mediaContentUrl: string, startSeconds?: number, suggestedQuality?: string): void;
loadVideoByUrl(video: {
mediaContentUrl: string;
startSeconds?: number | undefined;
endSeconds?: number | undefined;
suggestedQuality?: string | undefined;
}): void;
loadVideoById(videoId: string, startSeconds?: number, suggestedQuality?: string): void;
loadVideoById(video: {
videoId: string;
startSeconds?: number | undefined;
endSeconds?: number | undefined;
suggestedQuality?: string | undefined;
}): void;
isMuted(): boolean;
mute(): void;
nextVideo(): void;
pauseVideo(): void;
playVideo(): void;
playVideoAt(index: number): void;
previousVideo(): void;
removeEventListener(event: string, listener: (event: CustomEvent) => void): void;
seekTo(seconds: number, allowSeekAhead: boolean): void;
setLoop(loopPlaylists: boolean): void;
setPlaybackQuality(suggestedQuality: string): void;
setPlaybackRate(suggestedRate: number): void;
setShuffle(shufflePlaylist: boolean): void;
setSize(width: number, height: number): object;
setVolume(volume: number): void;
stopVideo(): void;
unMute(): void;
on(eventType: 'stateChange', listener: (event: CustomEvent & {
data: number;
}) => void): void;
on(eventType: EventType, listener: (event: CustomEvent) => void): void;
};