import { VideoFile } from '../../../../shared/models/videos/video.model'
import { PeerTubePlugin } from './peertube-plugin'
-import { WebTorrentPlugin } from './webtorrent-plugin'
+import { WebTorrentPlugin } from './webtorrent/webtorrent-plugin'
+import { P2pMediaLoaderPlugin } from './p2p-media-loader/p2p-media-loader-plugin'
+import { PlayerMode } from './peertube-player-manager'
declare namespace videojs {
interface Player {
peertube (): PeerTubePlugin
webtorrent (): WebTorrentPlugin
+ p2pMediaLoader (): P2pMediaLoaderPlugin
}
}
}
type PeerTubePluginOptions = {
+ mode: PlayerMode
+
autoplay: boolean
videoViewUrl: string
videoDuration: number
- startTime: number | string
userWatching?: UserWatching
subtitle?: string
videoCaptions: VideoJSCaption[]
+
+ stopTime: number | string
}
type WebtorrentPluginOptions = {
videoDuration: number
videoFiles: VideoFile[]
+
+ startTime: number | string
}
type P2PMediaLoaderPluginOptions = {
+ redundancyBaseUrls: string[]
type: string
src: string
+
+ startTime: number | string
}
type VideoJSPluginOptions = {
type ResolutionUpdateData = {
auto: boolean,
resolutionId: number
+ id?: number
}
type AutoResolutionUpdateData = {
possible: boolean
}
+type PlayerNetworkInfo = {
+ http: {
+ downloadSpeed: number
+ uploadSpeed: number
+ downloaded: number
+ uploaded: number
+ }
+
+ p2p: {
+ downloadSpeed: number
+ uploadSpeed: number
+ downloaded: number
+ uploaded: number
+ numPeers: number
+ }
+}
+
export {
+ PlayerNetworkInfo,
ResolutionUpdateData,
AutoResolutionUpdateData,
VideoJSComponentInterface,