mirror of
https://github.com/yusufipk/OpenFrame.git
synced 2026-09-11 09:36:08 +00:00
- Implemented edit dialog for updating video title and description. - Added functionality to create new video versions with URL validation. - Included delete confirmation dialog for video removal. - Enhanced UI with loading indicators and error handling. - Updated video card layout for better user interaction. feat(youtube): extend YT namespace with playback rate methods - Added methods to set and get playback rate. - Included method to retrieve available playback rates.
85 lines
1.8 KiB
TypeScript
85 lines
1.8 KiB
TypeScript
// YouTube IFrame API type declarations
|
|
|
|
interface Window {
|
|
YT: typeof YT;
|
|
onYouTubeIframeAPIReady: (() => void) | undefined;
|
|
}
|
|
|
|
declare namespace YT {
|
|
class Player {
|
|
constructor(
|
|
elementId: string | HTMLElement | null,
|
|
options?: PlayerOptions
|
|
);
|
|
|
|
playVideo(): void;
|
|
pauseVideo(): void;
|
|
stopVideo(): void;
|
|
seekTo(seconds: number, allowSeekAhead?: boolean): void;
|
|
mute(): void;
|
|
unMute(): void;
|
|
isMuted(): boolean;
|
|
setVolume(volume: number): void;
|
|
getVolume(): number;
|
|
getCurrentTime(): number;
|
|
getDuration(): number;
|
|
getPlayerState(): PlayerState;
|
|
setPlaybackRate(suggestedRate: number): void;
|
|
getPlaybackRate(): number;
|
|
getAvailablePlaybackRates(): number[];
|
|
destroy(): void;
|
|
}
|
|
|
|
interface PlayerOptions {
|
|
width?: number | string;
|
|
height?: number | string;
|
|
videoId?: string;
|
|
playerVars?: PlayerVars;
|
|
events?: PlayerEvents;
|
|
}
|
|
|
|
interface PlayerVars {
|
|
autoplay?: 0 | 1;
|
|
controls?: 0 | 1;
|
|
disablekb?: 0 | 1;
|
|
enablejsapi?: 0 | 1;
|
|
fs?: 0 | 1;
|
|
iv_load_policy?: 1 | 3;
|
|
modestbranding?: 0 | 1;
|
|
rel?: 0 | 1;
|
|
showinfo?: 0 | 1;
|
|
start?: number;
|
|
end?: number;
|
|
}
|
|
|
|
interface PlayerEvents {
|
|
onReady?: (event: PlayerEvent) => void;
|
|
onStateChange?: (event: OnStateChangeEvent) => void;
|
|
onPlaybackQualityChange?: (event: PlayerEvent) => void;
|
|
onPlaybackRateChange?: (event: PlayerEvent) => void;
|
|
onError?: (event: OnErrorEvent) => void;
|
|
onApiChange?: (event: PlayerEvent) => void;
|
|
}
|
|
|
|
interface PlayerEvent {
|
|
target: Player;
|
|
}
|
|
|
|
interface OnStateChangeEvent extends PlayerEvent {
|
|
data: PlayerState;
|
|
}
|
|
|
|
interface OnErrorEvent extends PlayerEvent {
|
|
data: number;
|
|
}
|
|
|
|
enum PlayerState {
|
|
UNSTARTED = -1,
|
|
ENDED = 0,
|
|
PLAYING = 1,
|
|
PAUSED = 2,
|
|
BUFFERING = 3,
|
|
CUED = 5,
|
|
}
|
|
}
|