From cf74a57d46fd8df3e7874bbfe20aa09c646e17fc Mon Sep 17 00:00:00 2001 From: unclekingpin Date: Tue, 10 Oct 2023 11:43:10 -0700 Subject: [PATCH] dispatch VideoParamsChanged action --- src/routes/Player/Player.js | 6 +++++- src/routes/Player/usePlayer.js | 11 ++++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/routes/Player/Player.js b/src/routes/Player/Player.js index 029be954a..d2e61107a 100644 --- a/src/routes/Player/Player.js +++ b/src/routes/Player/Player.js @@ -33,7 +33,7 @@ const Player = ({ urlParams, queryParams }) => { queryParams.has('maxAudioChannels') ? parseInt(queryParams.get('maxAudioChannels'), 10) : null ]; }, [queryParams]); - const [player, timeChanged, pausedChanged, ended] = usePlayer(urlParams); + const [player, videoParamsChanged, timeChanged, pausedChanged, ended] = usePlayer(urlParams); const [settings, updateSettings] = useSettings(); const streamingServer = useStreamingServer(); const routeFocused = useRouteFocused(); @@ -68,6 +68,7 @@ const Player = ({ urlParams, queryParams }) => { volume: null, muted: null, playbackSpeed: null, + videoParams: null, audioTracks: [], selectedAudioTrackId: null, subtitlesTracks: [], @@ -352,6 +353,9 @@ const Player = ({ urlParams, queryParams }) => { pausedChanged(videoState.paused); } }, [videoState.paused]); + React.useEffect(() => { + videoParamsChanged(videoState.videoParams); + }, [videoState.videoParams]); React.useEffect(() => { if (!!settings.bingeWatching && player.nextVideo !== null && !nextVideoPopupDismissed.current) { if (videoState.time !== null && videoState.duration !== null && videoState.time < videoState.duration && (videoState.duration - videoState.time) <= settings.nextVideoNotificationDuration) { diff --git a/src/routes/Player/usePlayer.js b/src/routes/Player/usePlayer.js index 4d06a2dd9..d530d78db 100644 --- a/src/routes/Player/usePlayer.js +++ b/src/routes/Player/usePlayer.js @@ -86,6 +86,15 @@ const usePlayer = (urlParams) => { }; } }, [urlParams]); + const videoParamsChanged = React.useCallback((videoParams) => { + core.transport.dispatch({ + action: 'Player', + args: { + action: 'VideoParamsChanged', + args: { videoParams } + } + }, 'player'); + }, []); const timeChanged = React.useCallback((time, duration, device) => { core.transport.dispatch({ action: 'Player', @@ -113,7 +122,7 @@ const usePlayer = (urlParams) => { }, 'player'); }, []); const player = useModelState({ model: 'player', action, map }); - return [player, timeChanged, pausedChanged, ended]; + return [player, videoParamsChanged, timeChanged, pausedChanged, ended]; }; module.exports = usePlayer;