- private static getVideojsOptions (
- mode: PlayerMode,
- options: PeertubePlayerManagerOptions,
- p2pMediaLoaderModule?: any
- ): videojs.PlayerOptions {
- const commonOptions = options.common
- const isHLS = mode === 'p2p-media-loader'
-
- let autoplay = this.getAutoPlayValue(commonOptions.autoplay)
- let html5 = {}
-
- const plugins: VideoJSPluginOptions = {
- peertube: {
- mode,
- autoplay, // Use peertube plugin autoplay because we get the file by webtorrent
- videoViewUrl: commonOptions.videoViewUrl,
- videoDuration: commonOptions.videoDuration,
- userWatching: commonOptions.userWatching,
- subtitle: commonOptions.subtitle,
- videoCaptions: commonOptions.videoCaptions,
- stopTime: commonOptions.stopTime
- }
- }
-
- if (commonOptions.playlist) {
- plugins.playlist = commonOptions.playlist
- }
-
- if (commonOptions.enableHotkeys === true) {
- PeertubePlayerManager.addHotkeysOptions(plugins)
- }
-
- if (isHLS) {
- const { hlsjs } = PeertubePlayerManager.addP2PMediaLoaderOptions(plugins, options, p2pMediaLoaderModule)
-
- html5 = hlsjs.html5
- }
-
- if (mode === 'webtorrent') {
- PeertubePlayerManager.addWebTorrentOptions(plugins, options)
-
- // WebTorrent plugin handles autoplay, because we do some hackish stuff in there
- autoplay = false
- }
-
- const videojsOptions = {
- html5,
-
- // We don't use text track settings for now
- textTrackSettings: false as any, // FIXME: typings
- controls: commonOptions.controls !== undefined ? commonOptions.controls : true,
- loop: commonOptions.loop !== undefined ? commonOptions.loop : false,
-
- muted: commonOptions.muted !== undefined
- ? commonOptions.muted
- : undefined, // Undefined so the player knows it has to check the local storage
-
- autoplay: this.getAutoPlayValue(autoplay),
-
- poster: commonOptions.poster,
- inactivityTimeout: commonOptions.inactivityTimeout,
- playbackRates: [ 0.5, 0.75, 1, 1.25, 1.5, 2 ],