import { VideoFile } from '../../../../shared/models/videos'
import 'videojs-hotkeys'
-import 'videojs-dock/dist/videojs-dock.es.js'
+import 'videojs-dock'
+import 'videojs-contextmenu'
+import 'videojs-contextmenu-ui'
import './peertube-link-button'
import './resolution-menu-button'
import './settings-menu-button'
import './webtorrent-info-button'
import './peertube-videojs-plugin'
+import './peertube-load-progress-bar'
import { videojsUntyped } from './peertube-videojs-typings'
+import { buildVideoEmbed, buildVideoLink, copyToClipboard } from './utils'
// Change 'Playback Rate' to 'Speed' (smaller for our settings menu)
videojsUntyped.getComponent('PlaybackRateMenuButton').prototype.controlText_ = 'Speed'
autoplay: boolean,
playerElement: HTMLVideoElement,
videoViewUrl: string,
+ videoEmbedUrl: string,
videoDuration: number,
videoFiles: VideoFile[],
enableHotkeys: boolean,
const videojsOptions = {
controls: true,
poster: options.poster,
- autoplay: options.autoplay,
+ autoplay: false,
inactivityTimeout: options.inactivityTimeout,
playbackRates: [ 0.5, 1, 1.5, 2 ],
plugins: {
peertube: {
+ autoplay: options.autoplay, // Use peertube plugin autoplay because we get the file by webtorrent
videoFiles: options.videoFiles,
playerElement: options.playerElement,
videoViewUrl: options.videoViewUrl,
videoDuration: options.videoDuration,
startTime: options.startTime
+ },
+ contextmenuUI: {
+ content: [
+ {
+ label: 'Copy the video URL',
+ listener: function () {
+ copyToClipboard(buildVideoLink())
+ }
+ },
+ {
+ label: 'Copy the video URL at the current time',
+ listener: function () {
+ const player = this
+ copyToClipboard(buildVideoLink(player.currentTime()))
+ }
+ },
+ {
+ label: 'Copy embed code',
+ listener: () => {
+ copyToClipboard(buildVideoEmbed(options.videoEmbedUrl))
+ }
+ }
+ ]
}
},
controlBar: {
'liveDisplay': {},
'flexibleWidthSpacer': {},
- 'progressControl': {},
+ 'progressControl': {
+ children: {
+ 'seekBar': {
+ children: {
+ 'peerTubeLoadProgressBar': {},
+ 'playProgressBar': {}
+ }
+ }
+ }
+ },
'webTorrentButton': {},