From f579873e1bc6e94622f0ec96d58fdfdc63edf51b Mon Sep 17 00:00:00 2001 From: "Timothy Z." Date: Thu, 23 Apr 2026 16:17:38 +0200 Subject: [PATCH] fix: don't restart stream on next-track media key when no next video MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The 'next-track' media-key handler called video.setTime(0) before checking whether a next video existed. onNextVideoRequested() no-ops when player.nextVideo is null, but the unconditional setTime(0) had already rewound the current stream — causing movies (which have no next video) to restart from the beginning when the Windows next-track media key was pressed. Guard both calls with the same player.nextVideo check that the navigator.mediaSession 'nexttrack' handler already uses. --- src/routes/Player/Player.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/routes/Player/Player.js b/src/routes/Player/Player.js index 497520b81..d1d981f65 100644 --- a/src/routes/Player/Player.js +++ b/src/routes/Player/Player.js @@ -650,8 +650,10 @@ const Player = ({ urlParams, queryParams }) => { video.state.paused ? onPlayRequested() : onPauseRequested(); break; case 'next-track': - video.setTime(0); - onNextVideoRequested(); + if (player.nextVideo !== null) { + video.setTime(0); + onNextVideoRequested(); + } break; case 'previous-track': if (video.state.time !== null && video.state.time > 5000) { @@ -662,7 +664,7 @@ const Player = ({ urlParams, queryParams }) => { }; shell.on('media-key', onMediaKey); return () => shell.off('media-key', onMediaKey); - }, [video.state.paused, video.state.time, onPlayRequested, onPauseRequested, onNextVideoRequested, onSeekRequested]); + }, [video.state.paused, video.state.time, player.nextVideo, onPlayRequested, onPauseRequested, onNextVideoRequested, onSeekRequested]); onShortcut('seekForward', (combo) => { if (video.state.time !== null) {