Skip to content

Commit 7ddc025

Browse files
keyboard events
1 parent bcad208 commit 7ddc025

File tree

2 files changed

+36
-6
lines changed

2 files changed

+36
-6
lines changed

desktop/src/views/main/js/actions.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ const click = async () => {
2626
const sanitizedPath = filePaths[0].replace(/\\/g, "/");
2727
video.src = `file:///${sanitizedPath}`;
2828
source.load();
29+
video.focus();
2930
welcomeContainer.style.setProperty("display", "none");
3031
}
3132
};

desktop/src/views/main/js/controls.js

Lines changed: 35 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ const handlePause = (e) => {
2222
};
2323
const fullscreen = (e) => {
2424
e.preventDefault();
25+
video.focus();
2526
if (isVideoInFullscreen()) {
2627
minimize_maximize.setAttribute("src", "./assets/maximize.svg");
2728
document.webkitExitFullscreen();
@@ -33,9 +34,11 @@ const fullscreen = (e) => {
3334
video.addEventListener("click", handlePause);
3435
play_pause.addEventListener("click", handlePause);
3536
video.addEventListener("pause", () => {
37+
video.focus();
3638
play_pause.setAttribute("src", "./assets/play-circle.svg");
3739
});
3840
video.addEventListener("play", () => {
41+
video.focus();
3942
play_pause.setAttribute("src", "./assets/pause-circle.svg");
4043
});
4144
video.addEventListener("dblclick", fullscreen);
@@ -55,7 +58,7 @@ function seek(event) {
5558
const percent = event.offsetX / this.offsetWidth;
5659
media.currentTime = percent * media.duration;
5760
progress.value = percent / 100;
58-
61+
video.focus();
5962
socket.emit("media-seeking", {
6063
timeStamp: media.currentTime,
6164
id: friendId.value,
@@ -85,16 +88,42 @@ const muteVolume = (e) => {
8588
volumeIndicator.setAttribute("src", "./assets/volume-2.svg");
8689
}
8790
};
88-
volumeIndicator.addEventListener("click", muteVolume);
89-
volume.addEventListener("change", ({ target }) => {
91+
92+
const handleVolume = ({ target }) => {
9093
video.volume = target.value;
9194
if (target.value == 0) {
9295
volumeIndicator.setAttribute("src", "./assets/volume-x.svg");
93-
} else if (target.value > 0 && target.value <= 0.2) {
96+
} else if (target.value > 0 && target.value <= 0.3) {
9497
volumeIndicator.setAttribute("src", "./assets/volume.svg");
95-
} else if (target.value > 0.2 && target.value <= 0.5) {
98+
} else if (target.value > 0.3 && target.value <= 0.5) {
9699
volumeIndicator.setAttribute("src", "./assets/volume-1.svg");
97100
} else {
98101
volumeIndicator.setAttribute("src", "./assets/volume-2.svg");
99102
}
100-
});
103+
};
104+
volumeIndicator.addEventListener("click", muteVolume);
105+
volume.addEventListener("input", handleVolume);
106+
volume.addEventListener("change", handleVolume);
107+
video.addEventListener("keydown", hadleKeyEvents);
108+
function hadleKeyEvents(e) {
109+
e.preventDefault();
110+
const { keyCode } = e;
111+
switch (keyCode) {
112+
case 39:
113+
socket.emit("media-seeking", {
114+
timeStamp: media.currentTime,
115+
id: friendId.value,
116+
});
117+
break;
118+
case 37:
119+
socket.emit("media-seeking", {
120+
timeStamp: media.currentTime,
121+
id: friendId.value,
122+
});
123+
break;
124+
case 32:
125+
if (video.paused) socket.emit("media-play", friendId.value);
126+
if (!video.paused) socket.emit("media-pause", friendId.value);
127+
break;
128+
}
129+
}

0 commit comments

Comments
 (0)