From 45f8e31f1ab296b00db81ef8eede9aec08a497f6 Mon Sep 17 00:00:00 2001 From: "Timothy Z." Date: Wed, 22 Apr 2026 17:42:56 +0300 Subject: [PATCH] feat: player add media key support --- src/routes/Player/Player.js | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/routes/Player/Player.js b/src/routes/Player/Player.js index 662717b70..a762ebdf3 100644 --- a/src/routes/Player/Player.js +++ b/src/routes/Player/Player.js @@ -643,6 +643,26 @@ const Player = ({ urlParams, queryParams }) => { navigator.mediaSession.setActionHandler('nexttrack', nexVideoCallback); }, [player.nextVideo, onPlayRequested, onPauseRequested, onNextVideoRequested]); + React.useEffect(() => { + const onMediaKey = (action) => { + switch (action) { + case 'play-pause': + video.state.paused ? onPlayRequested() : onPauseRequested(); + break; + case 'next-track': + onNextVideoRequested(); + break; + case 'previous-track': + if (video.state.time !== null && video.state.time > 5000) { + onSeekRequested(0); + } + break; + } + }; + shell.on('media-key', onMediaKey); + return () => shell.off('media-key', onMediaKey); + }, [video.state.paused, video.state.time, onPlayRequested, onPauseRequested, onNextVideoRequested, onSeekRequested]); + onShortcut('seekForward', (combo) => { if (video.state.time !== null) { const seekDuration = combo === 1 ? settings.seekShortTimeDuration : settings.seekTimeDuration;