feat: add YouTube embedded player (#460)
Co-authored-by: Daniel Vergara <daniel.omar.vergara@gmail.com>
This commit is contained in:
parent
830362b941
commit
5a28233856
8 changed files with 191 additions and 10 deletions
45
src/types/youtube.d.ts
vendored
Normal file
45
src/types/youtube.d.ts
vendored
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
declare global {
|
||||
interface Window {
|
||||
YT: {
|
||||
Player: new (element: HTMLElement, config: YouTubePlayerConfig) => YouTubePlayer
|
||||
PlayerState: {
|
||||
UNSTARTED: number
|
||||
ENDED: number
|
||||
PLAYING: number
|
||||
PAUSED: number
|
||||
BUFFERING: number
|
||||
CUED: number
|
||||
}
|
||||
}
|
||||
onYouTubeIframeAPIReady: () => void
|
||||
}
|
||||
}
|
||||
|
||||
interface YouTubePlayerConfig {
|
||||
videoId: string
|
||||
width?: number
|
||||
height?: number
|
||||
playerVars?: {
|
||||
autoplay?: 0 | 1
|
||||
controls?: 0 | 1
|
||||
start?: number
|
||||
end?: number
|
||||
}
|
||||
events?: {
|
||||
onReady?: (event: { target: YouTubePlayer }) => void
|
||||
onStateChange?: (event: { data: number; target: YouTubePlayer }) => void
|
||||
onError?: (event: { data: number }) => void
|
||||
}
|
||||
}
|
||||
|
||||
export interface YouTubePlayer {
|
||||
destroy(): void
|
||||
playVideo(): void
|
||||
pauseVideo(): void
|
||||
stopVideo(): void
|
||||
getCurrentTime(): number
|
||||
getDuration(): number
|
||||
getPlayerState(): number
|
||||
}
|
||||
|
||||
export {}
|
||||
Loading…
Add table
Add a link
Reference in a new issue