Skip to content

Commit 74fca56

Browse files
author
globbertot
committed
Fix issues
1 parent 722ac85 commit 74fca56

File tree

1 file changed

+47
-47
lines changed

1 file changed

+47
-47
lines changed

ui/component/viewers/videoViewer/internal/videojs-shortcuts.jsx

Lines changed: 47 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,6 @@ const VOLUME_STEP = 0.05;
1010
const VOLUME_STEP_FINE = 0.01;
1111
const FAST_SPEED = 2; // This could be a setting?
1212

13-
let holding = false;
14-
let spacePressed = false;
15-
let lastSpeed = 1.0;
16-
1713
// check if active (clicked) element is part of video div, used for keyboard shortcuts (volume etc)
1814
function activeElementIsPartOfVideoElement() {
1915
const videoElementParent = document.getElementsByClassName('video-js-parent')[0];
@@ -94,32 +90,6 @@ function togglePlay(containerRef, forcePlay = false) {
9490
videoNode.paused || forcePlay ? videoNode.play() : videoNode.pause();
9591
}
9692

97-
function changePlaybackSpeed(shouldSpeedUp: boolean, playerRef, newRate = -1) {
98-
const player = playerRef.current;
99-
if (!player) return;
100-
const isSpeedUp = shouldSpeedUp;
101-
let rate;
102-
103-
if (newRate !== -1) {
104-
rate = newRate;
105-
lastSpeed = player.playbackRate();
106-
} else {
107-
rate = player.playbackRate();
108-
}
109-
110-
let rateIndex = VIDEO_PLAYBACK_RATES.findIndex((x) => x === rate);
111-
if (rateIndex >= 0) {
112-
if (newRate === -1) {
113-
rateIndex = isSpeedUp ? Math.min(rateIndex + 1, VIDEO_PLAYBACK_RATES.length - 1) : Math.max(rateIndex - 1, 0);
114-
}
115-
const nextRate = VIDEO_PLAYBACK_RATES[rateIndex];
116-
117-
OVERLAY.showPlaybackRateOverlay(player, nextRate, isSpeedUp);
118-
player.userActive(true);
119-
player.playbackRate(nextRate);
120-
}
121-
}
122-
12393
const VideoJsShorcuts = ({
12494
playNext,
12595
playPrevious,
@@ -131,6 +101,36 @@ const VideoJsShorcuts = ({
131101
toggleVideoTheaterMode: any, // function
132102
isMobile: boolean,
133103
}) => {
104+
let holding = false;
105+
let spacePressed = false;
106+
let lastSpeed = 1.0;
107+
108+
function changePlaybackSpeed(shouldSpeedUp: boolean, playerRef, newRate = -1) {
109+
const player = playerRef.current;
110+
if (!player) return;
111+
const isSpeedUp = shouldSpeedUp;
112+
let rate;
113+
114+
if (newRate !== -1) {
115+
rate = newRate;
116+
lastSpeed = player.playbackRate();
117+
} else {
118+
rate = player.playbackRate();
119+
}
120+
121+
let rateIndex = VIDEO_PLAYBACK_RATES.findIndex((x) => x === rate);
122+
if (rateIndex >= 0) {
123+
if (newRate === -1) {
124+
rateIndex = isSpeedUp ? Math.min(rateIndex + 1, VIDEO_PLAYBACK_RATES.length - 1) : Math.max(rateIndex - 1, 0);
125+
}
126+
const nextRate = VIDEO_PLAYBACK_RATES[rateIndex];
127+
128+
OVERLAY.showPlaybackRateOverlay(player, nextRate, isSpeedUp);
129+
player.userActive(true);
130+
player.playbackRate(nextRate);
131+
}
132+
}
133+
134134
function toggleTheaterMode(playerRef) {
135135
const player = playerRef.current;
136136
if (!player) return;
@@ -153,7 +153,15 @@ const VideoJsShorcuts = ({
153153
const player = playerRef.current;
154154
const videoNode = containerRef.current && containerRef.current.querySelector('video, audio');
155155
if (!videoNode || !player || isUserTyping()) return;
156-
handleSingleKeyActions(e, playerRef);
156+
157+
if (e.keyCode === KEYCODES.SPACEBAR || e.keyCode === KEYCODES.K) {
158+
e.preventDefault();
159+
if (holding) {
160+
changePlaybackSpeed(true, playerRef, lastSpeed);
161+
}
162+
spacePressed = false;
163+
holding = false;
164+
}
157165
}
158166

159167
function handleShiftKeyActions(e: KeyboardEvent, playerRef) {
@@ -170,24 +178,16 @@ const VideoJsShorcuts = ({
170178

171179
if (e.keyCode === KEYCODES.SPACEBAR || e.keyCode === KEYCODES.K) {
172180
e.preventDefault();
173-
if (e.type === 'keydown') {
174-
if (!spacePressed) {
175-
togglePlay(containerRef);
176-
} else {
177-
if (!holding) {
178-
holding = true;
179-
togglePlay(containerRef, true);
180-
changePlaybackSpeed(true, playerRef, FAST_SPEED);
181-
}
182-
}
183-
spacePressed = true;
184-
} else if (e.type === 'keyup') {
185-
if (holding) {
186-
changePlaybackSpeed(true, playerRef, lastSpeed);
181+
if (!spacePressed) {
182+
togglePlay(containerRef);
183+
} else {
184+
if (!holding) {
185+
holding = true;
186+
togglePlay(containerRef, true);
187+
changePlaybackSpeed(true, playerRef, FAST_SPEED);
187188
}
188-
spacePressed = false;
189-
holding = false;
190189
}
190+
spacePressed = true;
191191
}
192192

193193
if (e.keyCode === KEYCODES.F) toggleFullscreen(playerRef);

0 commit comments

Comments
 (0)