diff --git a/src/routes/Player/Player.js b/src/routes/Player/Player.js index bad9ff602..d2179740a 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, videoParamsChanged, timeChanged, pausedChanged, ended] = usePlayer(urlParams); + const [player, videoParamsChanged, timeChanged, pausedChanged, ended, nextVideo] = usePlayer(urlParams); const [settings, updateSettings] = useSettings(); const streamingServer = useStreamingServer(); const routeFocused = useRouteFocused(); @@ -199,6 +199,8 @@ const Player = ({ urlParams, queryParams }) => { }, []); const onNextVideoRequested = React.useCallback(() => { if (player.nextVideo !== null) { + nextVideo(); + const deepLinks = player.nextVideo.deepLinks; if (deepLinks.metaDetailsStreams && deepLinks.player) { window.location.replace(deepLinks.metaDetailsStreams); diff --git a/src/routes/Player/usePlayer.js b/src/routes/Player/usePlayer.js index d530d78db..9bbc1673d 100644 --- a/src/routes/Player/usePlayer.js +++ b/src/routes/Player/usePlayer.js @@ -121,8 +121,16 @@ const usePlayer = (urlParams) => { } }, 'player'); }, []); + const nextVideo = React.useCallback(() => { + core.transport.dispatch({ + action: 'Player', + args: { + action: 'NextVideo' + } + }, 'player'); + }, []); const player = useModelState({ model: 'player', action, map }); - return [player, videoParamsChanged, timeChanged, pausedChanged, ended]; + return [player, videoParamsChanged, timeChanged, pausedChanged, ended, nextVideo]; }; module.exports = usePlayer;