type PeertubePluginOptions = {
videoFiles: VideoFile[]
playerElement: HTMLVideoElement
- peerTubeLink: boolean
videoViewUrl: string
videoDuration: number
}
MenuButton.registerComponent('ResolutionMenuButton', ResolutionMenuButton)
const Button: VideoJSComponentInterface = videojsUntyped.getComponent('Button')
-class PeertubeLinkButton extends Button {
+class PeerTubeLinkButton extends Button {
createEl () {
const link = document.createElement('a')
this.parentNode.removeChild(this)
}
}
-Button.registerComponent('PeerTubeLinkButton', PeertubeLinkButton)
+Button.registerComponent('PeerTubeLinkButton', PeerTubeLinkButton)
class WebTorrentButton extends Button {
createEl () {
// Do not display error to user because we will have multiple fallbacks
this.disableErrorDisplay()
+
this.player.src = () => true
+ this.player.playbackRate(1)
const previousVideoFile = this.currentVideoFile
this.currentVideoFile = videoFile
}
private initializePlayer (options: PeertubePluginOptions) {
- const controlBar = this.player.controlBar
-
- const menuButton = new ResolutionMenuButton(this.player, options)
- const fullscreenElement = controlBar.fullscreenToggle.el()
- controlBar.resolutionSwitcher = controlBar.el().insertBefore(menuButton.el(), fullscreenElement)
-
- if (options.peerTubeLink === true) {
- const peerTubeLinkButton = new PeertubeLinkButton(this.player)
- controlBar.peerTubeLink = controlBar.el().insertBefore(peerTubeLinkButton.el(), fullscreenElement)
- }
-
- const webTorrentButton = new WebTorrentButton(this.player)
- controlBar.webTorrent = controlBar.el().insertBefore(webTorrentButton.el(), controlBar.progressControl.el())
-
if (this.autoplay === true) {
this.updateVideoFile(undefined, () => this.player.play())
} else {