import * as videojs from 'video.js'
import * as WebTorrent from 'webtorrent'
import { VideoFile } from '../../../../shared/models/videos/video.model'
-
import { renderVideo } from './video-renderer'
+declare module 'video.js' {
+ interface Player {
+ peertube (): PeerTubePlugin
+ }
+}
+
interface VideoJSComponentInterface {
- _player: VideoJSPlayer
+ _player: videojs.Player
- new (player: VideoJSPlayer, options?: any)
+ new (player: videojs.Player, options?: any)
registerComponent (name: string, obj: any)
}
-interface VideoJSPlayer extends videojs.Player {
- peertube (): PeerTubePlugin
-}
-
type PeertubePluginOptions = {
videoFiles: VideoFile[]
playerElement: HTMLVideoElement
const MenuItem: VideoJSComponentInterface = videojsUntyped.getComponent('MenuItem')
class ResolutionMenuItem extends MenuItem {
- constructor (player: VideoJSPlayer, options) {
+ constructor (player: videojs.Player, options) {
options.selectable = true
super(player, options)
class ResolutionMenuButton extends MenuButton {
label: HTMLElement
- constructor (player: VideoJSPlayer, options) {
+ constructor (player: videojs.Player, options) {
options.label = 'Quality'
super(player, options)
private videoFiles: VideoFile[]
private torrent: WebTorrent.Torrent
- constructor (player: VideoJSPlayer, options: PeertubePluginOptions) {
+ constructor (player: videojs.Player, options: PeertubePluginOptions) {
super(player, options)
this.videoFiles = options.videoFiles