mirror of
https://github.com/Stremio/stremio-web.git
synced 2026-04-20 23:12:13 +00:00
feat: Player - update the rest of the streamStateItem fields
Signed-off-by: Lachezar Lechev <lachezar@ambire.com>
This commit is contained in:
parent
5c97d6e3fc
commit
e805bea3d4
1 changed files with 12 additions and 2 deletions
|
|
@ -37,7 +37,7 @@ const Player = ({ urlParams, queryParams }) => {
|
||||||
return queryParams.has('forceTranscoding');
|
return queryParams.has('forceTranscoding');
|
||||||
}, [queryParams]);
|
}, [queryParams]);
|
||||||
const profile = useProfile();
|
const profile = useProfile();
|
||||||
const [player, videoParamsChanged, timeChanged, seek, pausedChanged, ended, nextVideo] = usePlayer(urlParams);
|
const [player, videoParamsChanged, timeChanged, seek, pausedChanged, ended, nextVideo, streamStateChanged] = usePlayer(urlParams);
|
||||||
const [settings, updateSettings] = useSettings();
|
const [settings, updateSettings] = useSettings();
|
||||||
const streamingServer = useStreamingServer();
|
const streamingServer = useStreamingServer();
|
||||||
const statistics = useStatistics(player, streamingServer);
|
const statistics = useStatistics(player, streamingServer);
|
||||||
|
|
@ -222,6 +222,7 @@ const Player = ({ urlParams, queryParams }) => {
|
||||||
|
|
||||||
const onPlaybackSpeedChanged = React.useCallback((rate) => {
|
const onPlaybackSpeedChanged = React.useCallback((rate) => {
|
||||||
video.setProp('playbackSpeed', rate);
|
video.setProp('playbackSpeed', rate);
|
||||||
|
setStreamState({ ...streamState, playbackSpeed: rate });
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
const onSubtitlesTrackSelected = React.useCallback((id) => {
|
const onSubtitlesTrackSelected = React.useCallback((id) => {
|
||||||
|
|
@ -237,6 +238,8 @@ const Player = ({ urlParams, queryParams }) => {
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
const onExtraSubtitlesDelayChanged = React.useCallback((delay) => {
|
const onExtraSubtitlesDelayChanged = React.useCallback((delay) => {
|
||||||
|
setStreamState({ ...streamState, subtitleDelay: delay });
|
||||||
|
|
||||||
video.setProp('extraSubtitlesDelay', delay);
|
video.setProp('extraSubtitlesDelay', delay);
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
|
|
@ -252,6 +255,7 @@ const Player = ({ urlParams, queryParams }) => {
|
||||||
|
|
||||||
const onSubtitlesSizeChanged = React.useCallback((size) => {
|
const onSubtitlesSizeChanged = React.useCallback((size) => {
|
||||||
updateSettings({ subtitlesSize: size });
|
updateSettings({ subtitlesSize: size });
|
||||||
|
setStreamState({ ...streamState, subtitlesSize: size });
|
||||||
}, [updateSettings]);
|
}, [updateSettings]);
|
||||||
|
|
||||||
const onUpdateSubtitlesSize = React.useCallback((delta) => {
|
const onUpdateSubtitlesSize = React.useCallback((delta) => {
|
||||||
|
|
@ -262,6 +266,7 @@ const Player = ({ urlParams, queryParams }) => {
|
||||||
|
|
||||||
const onSubtitlesOffsetChanged = React.useCallback((offset) => {
|
const onSubtitlesOffsetChanged = React.useCallback((offset) => {
|
||||||
updateSettings({ subtitlesOffset: offset });
|
updateSettings({ subtitlesOffset: offset });
|
||||||
|
setStreamState({ ...streamState, subtitleOffset: offset });
|
||||||
}, [updateSettings]);
|
}, [updateSettings]);
|
||||||
|
|
||||||
const onDismissNextVideoPopup = React.useCallback(() => {
|
const onDismissNextVideoPopup = React.useCallback(() => {
|
||||||
|
|
@ -466,7 +471,7 @@ const Player = ({ urlParams, queryParams }) => {
|
||||||
} else if (extraSubtitlesTrack && extraSubtitlesTrack.id) {
|
} else if (extraSubtitlesTrack && extraSubtitlesTrack.id) {
|
||||||
onExtraSubtitlesTrackSelected(extraSubtitlesTrack.id);
|
onExtraSubtitlesTrackSelected(extraSubtitlesTrack.id);
|
||||||
defaultSubtitlesSelected.current = true;
|
defaultSubtitlesSelected.current = true;
|
||||||
setStreamState({ ...streamState, subtitlesTrack: { id: extraSubtitlesTrack.id, embedded: false, language: extraSubtitlesTrack.lang } });
|
setStreamState({ ...streamState, subtitleTrack: { id: extraSubtitlesTrack.id, embedded: false, language: extraSubtitlesTrack.lang } });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}, [video.state.subtitlesTracks, video.state.extraSubtitlesTracks]);
|
}, [video.state.subtitlesTracks, video.state.extraSubtitlesTracks]);
|
||||||
|
|
@ -479,6 +484,7 @@ const Player = ({ urlParams, queryParams }) => {
|
||||||
if (audioTrack && audioTrack.id) {
|
if (audioTrack && audioTrack.id) {
|
||||||
onAudioTrackSelected(audioTrack.id);
|
onAudioTrackSelected(audioTrack.id);
|
||||||
defaultAudioTrackSelected.current = true;
|
defaultAudioTrackSelected.current = true;
|
||||||
|
setStreamState({ ...streamState, audioTrack: { id: audioTrack.id, language: audioTrack.lang } });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}, [video.state.audioTracks]);
|
}, [video.state.audioTracks]);
|
||||||
|
|
@ -512,6 +518,10 @@ const Player = ({ urlParams, queryParams }) => {
|
||||||
}
|
}
|
||||||
}, [video.state.playbackSpeed]);
|
}, [video.state.playbackSpeed]);
|
||||||
|
|
||||||
|
React.useEffect(() => {
|
||||||
|
streamStateChanged(streamState);
|
||||||
|
}, [streamState]);
|
||||||
|
|
||||||
React.useEffect(() => {
|
React.useEffect(() => {
|
||||||
const toastFilter = (item) => item?.dataset?.type === 'CoreEvent';
|
const toastFilter = (item) => item?.dataset?.type === 'CoreEvent';
|
||||||
toast.addFilter(toastFilter);
|
toast.addFilter(toastFilter);
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue