99 lines
1.9 KiB
TypeScript
99 lines
1.9 KiB
TypeScript
import { PluginsManager } from '@root-helpers/plugins-manager'
|
|
import { LiveVideoLatencyMode, VideoFile } from '@shared/models'
|
|
import { PlaylistPluginOptions, VideoJSCaption } from './peertube-videojs-typings'
|
|
|
|
export type PlayerMode = 'webtorrent' | 'p2p-media-loader'
|
|
|
|
export type WebtorrentOptions = {
|
|
videoFiles: VideoFile[]
|
|
}
|
|
|
|
export type P2PMediaLoaderOptions = {
|
|
playlistUrl: string
|
|
segmentsSha256Url: string
|
|
trackerAnnounce: string[]
|
|
redundancyBaseUrls: string[]
|
|
videoFiles: VideoFile[]
|
|
}
|
|
|
|
export interface CustomizationOptions {
|
|
startTime: number | string
|
|
stopTime: number | string
|
|
|
|
controls?: boolean
|
|
controlBar?: boolean
|
|
|
|
muted?: boolean
|
|
loop?: boolean
|
|
subtitle?: string
|
|
resume?: string
|
|
|
|
peertubeLink: boolean
|
|
|
|
playbackRate?: number | string
|
|
}
|
|
|
|
export interface CommonOptions extends CustomizationOptions {
|
|
playerElement: HTMLVideoElement
|
|
onPlayerElementChange: (element: HTMLVideoElement) => void
|
|
|
|
autoplay: boolean
|
|
forceAutoplay: boolean
|
|
|
|
p2pEnabled: boolean
|
|
|
|
nextVideo?: () => void
|
|
hasNextVideo?: () => boolean
|
|
|
|
previousVideo?: () => void
|
|
hasPreviousVideo?: () => boolean
|
|
|
|
playlist?: PlaylistPluginOptions
|
|
|
|
videoDuration: number
|
|
enableHotkeys: boolean
|
|
inactivityTimeout: number
|
|
poster: string
|
|
|
|
videoViewIntervalMs: number
|
|
|
|
instanceName: string
|
|
|
|
theaterButton: boolean
|
|
captions: boolean
|
|
|
|
videoViewUrl: string
|
|
authorizationHeader?: () => string
|
|
|
|
metricsUrl: string
|
|
|
|
embedUrl: string
|
|
embedTitle: string
|
|
|
|
isLive: boolean
|
|
liveOptions?: {
|
|
latencyMode: LiveVideoLatencyMode
|
|
}
|
|
|
|
language?: string
|
|
|
|
videoCaptions: VideoJSCaption[]
|
|
|
|
videoUUID: string
|
|
videoShortUUID: string
|
|
|
|
serverUrl: string
|
|
requiresAuth: boolean
|
|
videoFileToken: () => string
|
|
|
|
errorNotifier: (message: string) => void
|
|
}
|
|
|
|
export type PeertubePlayerManagerOptions = {
|
|
common: CommonOptions
|
|
webtorrent: WebtorrentOptions
|
|
p2pMediaLoader?: P2PMediaLoaderOptions
|
|
|
|
pluginsManager: PluginsManager
|
|
}
|