mirror of
https://github.com/zhw2590582/ArtPlayer.git
synced 2026-10-23 05:41:20 -08:00
66 lines
1.8 KiB
TypeScript
66 lines
1.8 KiB
TypeScript
import type { AudioBufferSink, CanvasSink, Input } from 'mediabunny'
|
|
import type { ProxyOptions } from './engine-types'
|
|
import type EventTarget from './EventTarget'
|
|
import type { PlaybackMedia } from './media'
|
|
|
|
export interface AudioPort {
|
|
readonly audioSink: AudioBufferSink | null
|
|
cancelPending: () => void
|
|
readonly currentTime: number
|
|
duration: number
|
|
paused: boolean
|
|
load: (media: PlaybackMedia, metadata?: () => void) => Promise<void>
|
|
play: () => Promise<void>
|
|
pause: () => void
|
|
seek: (time: number) => Promise<void>
|
|
setVolume: (volume: number, muted: boolean) => void
|
|
setPlaybackRate: (rate: number) => void
|
|
handleNoAudioTrack: () => void
|
|
destroy: () => void
|
|
}
|
|
|
|
export interface VideoPort {
|
|
readonly videoSink: CanvasSink | null
|
|
cancelPending: () => void
|
|
width: number
|
|
height: number
|
|
duration: number
|
|
preflight: (source: unknown, signal?: AbortSignal, current?: () => boolean) => Promise<boolean>
|
|
load: (media: PlaybackMedia, metadata?: () => void) => Promise<void>
|
|
start: (clock: AudioPort) => void
|
|
stop: () => void
|
|
seek: (time: number) => Promise<void>
|
|
setPlaybackRate: (rate: number) => void
|
|
handleNoVideoTrack: () => void
|
|
destroy: () => void
|
|
}
|
|
|
|
export interface VideoOptions {
|
|
onError?: (error: unknown) => void
|
|
canvas: HTMLCanvasElement
|
|
ctx: CanvasRenderingContext2D | null
|
|
events: EventTarget
|
|
timeupdateInterval: number
|
|
avSyncTolerance: number
|
|
dropLateFrames: boolean
|
|
poster: string
|
|
preflightRange: boolean
|
|
}
|
|
|
|
export interface PlaybackHost {
|
|
audio: AudioPort
|
|
video: VideoPort
|
|
events: EventTarget
|
|
readonly destroyed: boolean
|
|
readonly loadSeq: number
|
|
paused: boolean
|
|
ended: boolean
|
|
seeking: boolean
|
|
readyState: number
|
|
networkState: number
|
|
media: PlaybackMedia | null
|
|
input: Input | null
|
|
option: ProxyOptions
|
|
reportError: (error: unknown) => void
|
|
}
|