feat: add YouTube embedded player (#460)

Co-authored-by: Daniel  Vergara <daniel.omar.vergara@gmail.com>
This commit is contained in:
Cody Tseng 2025-07-30 10:55:11 +08:00 committed by GitHub
parent 830362b941
commit 5a28233856
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 191 additions and 10 deletions

45
src/types/youtube.d.ts vendored Normal file
View 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 {}