]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - client/src/assets/player/peertube-player-manager.ts
Cleanup player hotkeys
[github/Chocobozzz/PeerTube.git] / client / src / assets / player / peertube-player-manager.ts
index ac8134fa8ce9b24db51f69e6ba044a16c0aa8de6..d715adf569097c921bcffb1687371f88e1d39ba1 100644 (file)
@@ -21,6 +21,8 @@ import './videojs-components/settings-panel'
 import './videojs-components/settings-panel-child'
 import './videojs-components/theater-button'
 import './playlist/playlist-plugin'
+import './mobile/peertube-mobile-plugin'
+import './mobile/peertube-mobile-buttons'
 import videojs from 'video.js'
 import { HlsJsEngineSettings } from '@peertube/p2p-media-loader-hlsjs'
 import { PluginsManager } from '@root-helpers/plugins-manager'
@@ -43,7 +45,7 @@ import {
   VideoJSPluginOptions
 } from './peertube-videojs-typings'
 import { TranslationsManager } from './translations-manager'
-import { buildVideoOrPlaylistEmbed, getRtcConfig, isIOS, isSafari } from './utils'
+import { buildVideoOrPlaylistEmbed, getRtcConfig, isIOS, isMobile, isSafari } from './utils'
 
 // Change 'Playback Rate' to 'Speed' (smaller for our settings menu)
 (videojs.getComponent('PlaybackRateMenuButton') as any).prototype.controlText_ = 'Speed'
@@ -189,7 +191,10 @@ export class PeertubePlayerManager {
           videoEmbedTitle: options.common.embedTitle
         })
 
+        if (isMobile()) player.peertubeMobile()
+
         player.bezels()
+
         player.stats({
           videoUUID: options.common.videoUUID,
           videoIsLive: options.common.isLive,
@@ -682,9 +687,20 @@ export class PeertubePlayerManager {
               player.playbackRate(parseFloat(newValue.toFixed(2)))
             }
           },
-          frameByFrame: {
+          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 isNaked(event, '.')
+              return event.key === '.'
             },
             handler: function (player: videojs.Player) {
               player.pause()