vue3-ytframe
Version:
A Vue3 YouTube Iframe API Wrapper Component
290 lines (289 loc) • 15.6 kB
TypeScript
import { getVideoIdFromYoutubeURL } from './utils';
import { VueYtframeProps, LoadVideoByIdOptions, LoadVideoByUrlOptions } from './types';
/** @see https://developers.google.com/youtube/iframe_api_reference#playVideo */
declare function playVideo(): void;
/** @see https://developers.google.com/youtube/iframe_api_reference#pauseVideo */
declare function pauseVideo(): void;
/** @see https://developers.google.com/youtube/iframe_api_reference#stopVideo */
declare function stopVideo(): void;
/** @see https://developers.google.com/youtube/iframe_api_reference#seekTo */
declare function seekTo(seconds: number, allowSeekAhead: boolean): void;
/** @see https://developers.google.com/youtube/iframe_api_reference#nextVideo */
declare function nextVideo(): void;
/** @see https://developers.google.com/youtube/iframe_api_reference#previousVideo */
declare function previousVideo(): void;
/** @see https://developers.google.com/youtube/iframe_api_reference#playVideoAt */
declare function playVideoAt(index: number): void;
/** @see https://developers.google.com/youtube/iframe_api_reference#mute */
declare function mute(): void;
/** @see https://developers.google.com/youtube/iframe_api_reference#unMute */
declare function unMute(): void;
/** @see https://developers.google.com/youtube/iframe_api_reference#isMuted */
declare function isMuted(): boolean;
/** @see https://developers.google.com/youtube/iframe_api_reference#setVolume */
declare function setVolume(volume: number): void;
/** @see https://developers.google.com/youtube/iframe_api_reference#getVolume */
declare function getVolume(): number;
/** @see https://developers.google.com/youtube/iframe_api_reference#setSize */
declare function setSize(width: number, height: number): void;
/** @see https://developers.google.com/youtube/iframe_api_reference#setLoop */
declare function setLoop(loopPlaylists: boolean): void;
/** @see https://developers.google.com/youtube/iframe_api_reference#setShuffle */
declare function setShuffle(shufflePlaylist: boolean): void;
/** @see https://developers.google.com/youtube/iframe_api_reference#getDuration */
declare function getDuration(): number;
/** @see https://developers.google.com/youtube/iframe_api_reference#getCurrentTime */
declare function getCurrentTime(): number;
/** @see https://developers.google.com/youtube/iframe_api_reference#getVideoEmbedCode */
declare function getVideoEmbedCode(): string;
/** @see https://developers.google.com/youtube/iframe_api_reference#getVideoUrl */
declare function getVideoUrl(): string;
/** @see https://developers.google.com/youtube/iframe_api_reference#getVideoLoadedFraction */
declare function getVideoLoadedFraction(): number;
/** @see https://developers.google.com/youtube/iframe_api_reference#getPlayerState */
declare function getPlayerState(): number;
/** @see https://developers.google.com/youtube/iframe_api_reference#getPlaybackRate */
declare function getPlaybackRate(): number;
/** @see https://developers.google.com/youtube/iframe_api_reference#setPlaybackRate */
declare function setPlaybackRate(suggestedRate: number): void;
/** @see https://developers.google.com/youtube/iframe_api_reference#getAvailablePlaybackRates */
declare function getAvailablePlaybackRates(): number[];
/** @see https://developers.google.com/youtube/iframe_api_reference#onApiChange */
declare function getOptions(): string[];
/** @see https://developers.google.com/youtube/iframe_api_reference#onApiChange */
declare function getAnOption(module: string, option: string): unknown;
/** @see https://developers.google.com/youtube/iframe_api_reference#onApiChange */
declare function setAnOption(module: string, option: string, value: unknown): void;
/** @see https://developers.google.com/youtube/iframe_api_reference#getSphericalProperties */
declare function getSphericalProperties(): object;
/** @see https://developers.google.com/youtube/iframe_api_reference#setSphericalProperties */
declare function setSphericalProperties(properties: object): void;
/** @see https://developers.google.com/youtube/iframe_api_reference#getPlaylist */
declare function getPlaylist(): string[];
/** @see https://developers.google.com/youtube/iframe_api_reference#getPlaylistIndex */
declare function getPlaylistIndex(): number;
/** @see https://developers.google.com/youtube/iframe_api_reference#getIframe */
declare function getIframe(): HTMLIFrameElement;
/** @see https://developers.google.com/youtube/iframe_api_reference#destroy */
declare function destroy(): void;
/** @see https://developers.google.com/youtube/iframe_api_reference#loadVideoById */
declare function loadVideoById({ videoId, startSeconds, endSeconds }: LoadVideoByIdOptions): void;
/** @see https://developers.google.com/youtube/iframe_api_reference#cueVideoById */
declare function cueVideoById({ videoId, startSeconds, endSeconds }: LoadVideoByIdOptions): void;
/** @see https://developers.google.com/youtube/iframe_api_reference#loadVideoByUrl */
declare function loadVideoByUrl({ mediaContentUrl, startSeconds, endSeconds }: LoadVideoByUrlOptions): void;
/** @see https://developers.google.com/youtube/iframe_api_reference#cueVideoByUrl */
declare function cueVideoByUrl({ mediaContentUrl, startSeconds, endSeconds }: LoadVideoByUrlOptions): void;
/** @see https://developers.google.com/youtube/iframe_api_reference#cuePlaylist */
declare function cuePlaylist(playlist: string | string[], index?: number, startSeconds?: number): void;
/** @see https://developers.google.com/youtube/iframe_api_reference#loadPlaylist */
declare function loadPlaylist(playlist: string | string[], index?: number, startSeconds?: number): void;
declare const __VLS_export: import('vue').DefineComponent<VueYtframeProps, {
player: import('vue').Ref<{
cueVideoById: {
(videoId: string, startSeconds?: number, suggestedQuality?: YT.SuggestedVideoQuality): void;
(args: YT.VideoByIdSettings): void;
};
loadVideoById: {
(videoId: string, startSeconds?: number, suggestedQuality?: YT.SuggestedVideoQuality): void;
(args: YT.VideoByIdSettings): void;
};
cueVideoByUrl: {
(mediaContentUrl: string, startSeconds?: number, suggestedQuality?: YT.SuggestedVideoQuality): void;
(args: YT.VideoByMediaContentUrlSettings): void;
};
loadVideoByUrl: {
(mediaContentUrl: string, startSeconds?: number, suggestedQuality?: YT.SuggestedVideoQuality): void;
(args: {
mediaContentUrl: string;
startSeconds?: number | undefined;
endSeconds?: number | undefined;
suggestedQuality?: YT.SuggestedVideoQuality | undefined;
}): void;
};
cuePlaylist: {
(playlist: string | string[], index?: number, startSeconds?: number, suggestedQuality?: YT.SuggestedVideoQuality): void;
(args: YT.IPlaylistSettings): void;
};
loadPlaylist: {
(playlist: string | string[], index?: number, startSeconds?: number, suggestedQuality?: YT.SuggestedVideoQuality): void;
(args: YT.IPlaylistSettings): void;
};
playVideo: () => void;
pauseVideo: () => void;
stopVideo: () => void;
seekTo: (seconds: number, allowSeekAhead: boolean) => void;
nextVideo: () => void;
previousVideo: () => void;
playVideoAt: (index: number) => void;
mute: () => void;
unMute: () => void;
isMuted: () => boolean;
setVolume: (volume: number) => void;
getVolume: () => number;
setSize: (width: number, height: number) => void;
getPlaybackRate: () => number;
setPlaybackRate: (suggestedRate: number) => void;
getAvailablePlaybackRates: () => number[];
setLoop: (loopPlaylists: boolean) => void;
setShuffle: (shufflePlaylist: boolean) => void;
getVideoLoadedFraction: () => number;
getPlayerState: () => YT.PlayerState;
getCurrentTime: () => number;
getPlaybackQuality: () => YT.SuggestedVideoQuality;
setPlaybackQuality: (suggestedQuality: YT.SuggestedVideoQuality) => void;
getAvailableQualityLevels: () => YT.SuggestedVideoQuality[];
getDuration: () => number;
getVideoUrl: () => string;
getSphericalProperties: () => YT.SphericalProperties;
setSphericalProperties: (option: YT.SphericalProperties) => void;
getVideoEmbedCode: () => string;
getPlaylist: () => string[];
getPlaylistIndex: () => number;
addEventListener: <EventName extends keyof YT.Events>(eventName: EventName, listener: NonNullable<YT.Events[EventName]>) => void;
removeEventListener: <EventName extends keyof YT.Events>(eventName: EventName, listener: NonNullable<YT.Events[EventName]>) => void;
getIframe: () => HTMLIFrameElement;
destroy: () => void;
getVideoData: () => YT.VideoData;
getOptions: () => string[];
getOption: (module: string, option: string) => unknown;
setOption: (module: string, option: string, value: unknown) => void;
} | null, YT.Player | {
cueVideoById: {
(videoId: string, startSeconds?: number, suggestedQuality?: YT.SuggestedVideoQuality): void;
(args: YT.VideoByIdSettings): void;
};
loadVideoById: {
(videoId: string, startSeconds?: number, suggestedQuality?: YT.SuggestedVideoQuality): void;
(args: YT.VideoByIdSettings): void;
};
cueVideoByUrl: {
(mediaContentUrl: string, startSeconds?: number, suggestedQuality?: YT.SuggestedVideoQuality): void;
(args: YT.VideoByMediaContentUrlSettings): void;
};
loadVideoByUrl: {
(mediaContentUrl: string, startSeconds?: number, suggestedQuality?: YT.SuggestedVideoQuality): void;
(args: {
mediaContentUrl: string;
startSeconds?: number | undefined;
endSeconds?: number | undefined;
suggestedQuality?: YT.SuggestedVideoQuality | undefined;
}): void;
};
cuePlaylist: {
(playlist: string | string[], index?: number, startSeconds?: number, suggestedQuality?: YT.SuggestedVideoQuality): void;
(args: YT.IPlaylistSettings): void;
};
loadPlaylist: {
(playlist: string | string[], index?: number, startSeconds?: number, suggestedQuality?: YT.SuggestedVideoQuality): void;
(args: YT.IPlaylistSettings): void;
};
playVideo: () => void;
pauseVideo: () => void;
stopVideo: () => void;
seekTo: (seconds: number, allowSeekAhead: boolean) => void;
nextVideo: () => void;
previousVideo: () => void;
playVideoAt: (index: number) => void;
mute: () => void;
unMute: () => void;
isMuted: () => boolean;
setVolume: (volume: number) => void;
getVolume: () => number;
setSize: (width: number, height: number) => void;
getPlaybackRate: () => number;
setPlaybackRate: (suggestedRate: number) => void;
getAvailablePlaybackRates: () => number[];
setLoop: (loopPlaylists: boolean) => void;
setShuffle: (shufflePlaylist: boolean) => void;
getVideoLoadedFraction: () => number;
getPlayerState: () => YT.PlayerState;
getCurrentTime: () => number;
getPlaybackQuality: () => YT.SuggestedVideoQuality;
setPlaybackQuality: (suggestedQuality: YT.SuggestedVideoQuality) => void;
getAvailableQualityLevels: () => YT.SuggestedVideoQuality[];
getDuration: () => number;
getVideoUrl: () => string;
getSphericalProperties: () => YT.SphericalProperties;
setSphericalProperties: (option: YT.SphericalProperties) => void;
getVideoEmbedCode: () => string;
getPlaylist: () => string[];
getPlaylistIndex: () => number;
addEventListener: <EventName extends keyof YT.Events>(eventName: EventName, listener: NonNullable<YT.Events[EventName]>) => void;
removeEventListener: <EventName extends keyof YT.Events>(eventName: EventName, listener: NonNullable<YT.Events[EventName]>) => void;
getIframe: () => HTMLIFrameElement;
destroy: () => void;
getVideoData: () => YT.VideoData;
getOptions: () => string[];
getOption: (module: string, option: string) => unknown;
setOption: (module: string, option: string, value: unknown) => void;
} | null>;
playVideo: typeof playVideo;
pauseVideo: typeof pauseVideo;
stopVideo: typeof stopVideo;
seekTo: typeof seekTo;
nextVideo: typeof nextVideo;
previousVideo: typeof previousVideo;
playVideoAt: typeof playVideoAt;
mute: typeof mute;
unMute: typeof unMute;
isMuted: typeof isMuted;
setVolume: typeof setVolume;
getVolume: typeof getVolume;
setSize: typeof setSize;
setShuffle: typeof setShuffle;
setLoop: typeof setLoop;
getDuration: typeof getDuration;
getCurrentTime: typeof getCurrentTime;
getVideoEmbedCode: typeof getVideoEmbedCode;
getVideoUrl: typeof getVideoUrl;
getVideoLoadedFraction: typeof getVideoLoadedFraction;
getPlayerState: typeof getPlayerState;
getPlaybackRate: typeof getPlaybackRate;
setPlaybackRate: typeof setPlaybackRate;
getAvailablePlaybackRates: typeof getAvailablePlaybackRates;
getOptions: typeof getOptions;
getAnOption: typeof getAnOption;
setAnOption: typeof setAnOption;
getSphericalProperties: typeof getSphericalProperties;
setSphericalProperties: typeof setSphericalProperties;
getPlaylist: typeof getPlaylist;
getPlaylistIndex: typeof getPlaylistIndex;
getIframe: typeof getIframe;
destroy: typeof destroy;
loadVideoById: typeof loadVideoById;
cueVideoById: typeof cueVideoById;
loadVideoByUrl: typeof loadVideoByUrl;
cueVideoByUrl: typeof cueVideoByUrl;
cuePlaylist: typeof cuePlaylist;
loadPlaylist: typeof loadPlaylist;
getVideoIdFromYoutubeURL: typeof getVideoIdFromYoutubeURL;
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
ready: (player: YT.Player) => any;
playing: (player: YT.Player) => any;
paused: (player: YT.Player) => any;
ended: (player: YT.Player) => any;
stateChange: (player: YT.Player) => any;
playbackQualityChange: (player: YT.Player) => any;
playbackRateChange: (player: YT.Player) => any;
error: (player: YT.Player) => any;
apiChange: (player: YT.Player) => any;
}, string, import('vue').PublicProps, Readonly<VueYtframeProps> & Readonly<{
onReady?: ((player: YT.Player) => any) | undefined;
onPlaying?: ((player: YT.Player) => any) | undefined;
onPaused?: ((player: YT.Player) => any) | undefined;
onEnded?: ((player: YT.Player) => any) | undefined;
onStateChange?: ((player: YT.Player) => any) | undefined;
onPlaybackQualityChange?: ((player: YT.Player) => any) | undefined;
onPlaybackRateChange?: ((player: YT.Player) => any) | undefined;
onError?: ((player: YT.Player) => any) | undefined;
onApiChange?: ((player: YT.Player) => any) | undefined;
}>, {
videoId: string | null;
videoUrl: string | null;
width: number | string;
height: number | string;
playerVars: YT.PlayerVars;
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
declare const _default: typeof __VLS_export;
export default _default;