X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;ds=sidebyside;f=client%2Fsrc%2Fassets%2Fplayer%2Fpeertube-player.ts;h=1fca6a7d2c38e0039d23aa1795eb435ac565cbca;hb=4f1f6f038389ce9cdf0c77dfccdc63efc6948101;hp=7e339990ccec66675843e225319dda5fd87a1a3b;hpb=5634dfc81161918c2da018989a518f1ef5fe2664;p=github%2FChocobozzz%2FPeerTube.git diff --git a/client/src/assets/player/peertube-player.ts b/client/src/assets/player/peertube-player.ts index 7e339990c..1fca6a7d2 100644 --- a/client/src/assets/player/peertube-player.ts +++ b/client/src/assets/player/peertube-player.ts @@ -11,12 +11,16 @@ import './webtorrent-info-button' import './peertube-videojs-plugin' import './peertube-load-progress-bar' import './theater-button' -import { videojsUntyped } from './peertube-videojs-typings' +import { VideoJSCaption, videojsUntyped } from './peertube-videojs-typings' import { buildVideoEmbed, buildVideoLink, copyToClipboard } from './utils' import { getCompleteLocale, getShortLocale, is18nLocale, isDefaultLocale } from '../../../../shared/models/i18n/i18n' // Change 'Playback Rate' to 'Speed' (smaller for our settings menu) videojsUntyped.getComponent('PlaybackRateMenuButton').prototype.controlText_ = 'Speed' +// Change Captions to Subtitles/CC +videojsUntyped.getComponent('CaptionsButton').prototype.controlText_ = 'Subtitles/CC' +// We just want to display 'Off' instead of 'captions off', keep a space so the variable == true (hacky I know) +videojsUntyped.getComponent('CaptionsButton').prototype.label_ = ' ' function getVideojsOptions (options: { autoplay: boolean, @@ -28,11 +32,19 @@ function getVideojsOptions (options: { inactivityTimeout: number, peertubeLink: boolean, poster: string, - startTime: number - theaterMode: boolean + startTime: number | string + theaterMode: boolean, + videoCaptions: VideoJSCaption[], + controls?: boolean, + muted?: boolean, + loop?: boolean }) { const videojsOptions = { - controls: true, + // We don't use text track settings for now + textTrackSettings: false, + controls: options.controls !== undefined ? options.controls : true, + muted: options.controls !== undefined ? options.muted : false, + loop: options.loop !== undefined ? options.loop : false, poster: options.poster, autoplay: false, inactivityTimeout: options.inactivityTimeout, @@ -40,6 +52,7 @@ function getVideojsOptions (options: { plugins: { peertube: { autoplay: options.autoplay, // Use peertube plugin autoplay because we get the file by webtorrent + videoCaptions: options.videoCaptions, videoFiles: options.videoFiles, playerElement: options.playerElement, videoViewUrl: options.videoViewUrl, @@ -66,8 +79,16 @@ function getVideojsOptions (options: { function getControlBarChildren (options: { peertubeLink: boolean - theaterMode: boolean + theaterMode: boolean, + videoCaptions: VideoJSCaption[] }) { + const settingEntries = [] + + // Keep an order + settingEntries.push('playbackRateMenuButton') + if (options.videoCaptions.length !== 0) settingEntries.push('captionsButton') + settingEntries.push('resolutionMenuButton') + const children = { 'playToggle': {}, 'currentTimeDisplay': {}, @@ -97,10 +118,7 @@ function getControlBarChildren (options: { setup: { maxHeightOffset: 40 }, - entries: [ - 'resolutionMenuButton', - 'playbackRateMenuButton' - ] + entries: settingEntries } }