From d7b052ff4e5604043cd4405ed400f314d0e9a412 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Thu, 13 Jan 2022 11:14:28 +0100 Subject: Move to our own player hotkeys --- .../src/assets/player/peertube-player-manager.ts | 83 +--------------------- 1 file changed, 2 insertions(+), 81 deletions(-) (limited to 'client/src/assets/player/peertube-player-manager.ts') diff --git a/client/src/assets/player/peertube-player-manager.ts b/client/src/assets/player/peertube-player-manager.ts index d715adf56..b9a289aa0 100644 --- a/client/src/assets/player/peertube-player-manager.ts +++ b/client/src/assets/player/peertube-player-manager.ts @@ -1,4 +1,3 @@ -import 'videojs-hotkeys/videojs.hotkeys' import 'videojs-dock' import '@peertube/videojs-contextmenu' import './upnext/end-card' @@ -23,6 +22,7 @@ import './videojs-components/theater-button' import './playlist/playlist-plugin' import './mobile/peertube-mobile-plugin' import './mobile/peertube-mobile-buttons' +import './hotkeys/peertube-hotkeys-plugin' import videojs from 'video.js' import { HlsJsEngineSettings } from '@peertube/p2p-media-loader-hlsjs' import { PluginsManager } from '@root-helpers/plugins-manager' @@ -192,6 +192,7 @@ export class PeertubePlayerManager { }) if (isMobile()) player.peertubeMobile() + if (options.common.enableHotkeys === true) player.peerTubeHotkeysPlugin() player.bezels() @@ -286,10 +287,6 @@ export class PeertubePlayerManager { plugins.playlist = commonOptions.playlist } - if (commonOptions.enableHotkeys === true) { - PeertubePlayerManager.addHotkeysOptions(plugins) - } - if (isHLS) { const { hlsjs } = PeertubePlayerManager.addP2PMediaLoaderOptions(plugins, options, p2pMediaLoaderModule) @@ -638,82 +635,6 @@ export class PeertubePlayerManager { player.contextmenuUI({ content }) } - private static addHotkeysOptions (plugins: VideoJSPluginOptions) { - const isNaked = (event: KeyboardEvent, key: string) => - (!event.ctrlKey && !event.altKey && !event.metaKey && !event.shiftKey && event.key === key) - - Object.assign(plugins, { - hotkeys: { - skipInitialFocus: true, - enableInactiveFocus: false, - captureDocumentHotkeys: true, - documentHotkeysFocusElementFilter: (e: HTMLElement) => { - const tagName = e.tagName.toLowerCase() - return e.id === 'content' || tagName === 'body' || tagName === 'video' - }, - - enableVolumeScroll: false, - enableModifiersForNumbers: false, - - rewindKey: function (event: KeyboardEvent) { - return isNaked(event, 'ArrowLeft') - }, - - forwardKey: function (event: KeyboardEvent) { - return isNaked(event, 'ArrowRight') - }, - - fullscreenKey: function (event: KeyboardEvent) { - // fullscreen with the f key or Ctrl+Enter - return isNaked(event, 'f') || (!event.altKey && event.ctrlKey && event.key === 'Enter') - }, - - customKeys: { - increasePlaybackRateKey: { - key: function (event: KeyboardEvent) { - return isNaked(event, '>') - }, - handler: function (player: videojs.Player) { - const newValue = Math.min(player.playbackRate() + 0.1, 5) - player.playbackRate(parseFloat(newValue.toFixed(2))) - } - }, - decreasePlaybackRateKey: { - key: function (event: KeyboardEvent) { - return isNaked(event, '<') - }, - handler: function (player: videojs.Player) { - const newValue = Math.max(player.playbackRate() - 0.1, 0.10) - player.playbackRate(parseFloat(newValue.toFixed(2))) - } - }, - previousFrame: { - key: function (event: KeyboardEvent) { - return event.key === ',' - }, - handler: function (player: videojs.Player) { - player.pause() - // Calculate movement distance (assuming 30 fps) - const dist = 1 / 30 - player.currentTime(player.currentTime() - dist) - } - }, - nextFrame: { - key: function (event: KeyboardEvent) { - return event.key === '.' - }, - handler: function (player: videojs.Player) { - player.pause() - // Calculate movement distance (assuming 30 fps) - const dist = 1 / 30 - player.currentTime(player.currentTime() + dist) - } - } - } - } - }) - } - private static getAutoPlayValue (autoplay: any) { if (autoplay !== true) return autoplay -- cgit v1.2.3