fix drag seeking inteference with real seeking

This commit is contained in:
Jelle van Snik 2023-02-07 23:38:39 +01:00
parent bd7799b5c1
commit d9ccce1726
5 changed files with 7 additions and 1 deletions

View File

@ -40,7 +40,7 @@ export function TimeAction(props: Props) {
const hasHours = durationExceedsHour(videoTime.duration);
const time = formatSeconds(
mediaPlaying.isSeeking ? videoTime.draggingTime : videoTime.time,
mediaPlaying.isDragSeeking ? videoTime.draggingTime : videoTime.time,
hasHours
);
const duration = formatSeconds(videoTime.duration, hasHours);

View File

@ -9,6 +9,7 @@ function initPlayer(): VideoPlayerState {
isFullscreen: false,
isFocused: false,
leftControlHovering: false,
popoutBounds: null,
},
mediaPlaying: {
@ -16,6 +17,7 @@ function initPlayer(): VideoPlayerState {
isPaused: true,
isLoading: false,
isSeeking: false,
isDragSeeking: false,
isFirstLoading: true,
hasPlayedOnce: false,
volume: 0,

View File

@ -8,6 +8,7 @@ export type VideoMediaPlayingEvent = {
isPaused: boolean;
isLoading: boolean;
isSeeking: boolean;
isDragSeeking: boolean;
hasPlayedOnce: boolean;
isFirstLoading: boolean;
volume: number;
@ -22,6 +23,7 @@ function getMediaPlayingFromState(
isPaused: state.mediaPlaying.isPaused,
isPlaying: state.mediaPlaying.isPlaying,
isSeeking: state.mediaPlaying.isSeeking,
isDragSeeking: state.mediaPlaying.isDragSeeking,
isFirstLoading: state.mediaPlaying.isFirstLoading,
volume: state.mediaPlaying.volume,
};

View File

@ -99,6 +99,7 @@ export function createVideoStateProvider(
},
setSeeking(active) {
state.mediaPlaying.isSeeking = active;
state.mediaPlaying.isDragSeeking = active;
updateMediaPlaying(descriptor, state);
// if it was playing when starting to seek, play again

View File

@ -31,6 +31,7 @@ export type VideoPlayerState = {
isPlaying: boolean;
isPaused: boolean;
isSeeking: boolean; // seeking with progress bar
isDragSeeking: boolean; // is seeking for our custom progress bar
isLoading: boolean; // buffering or not
isFirstLoading: boolean; // first buffering of the video, when set to false the video can start playing
hasPlayedOnce: boolean; // has the video played at all?