fix(#1701): play live afrer played episodes

keep-around/fdb88b04b32b9392e76795099e2ec47c9856b38b
Andrei Dekterev 4 years ago
parent a2e6a38054
commit 1a4896f95d
  1. 33
      src/features/StreamPlayer/hooks/index.tsx

@ -16,6 +16,7 @@ import { useEventListener } from 'hooks/useEventListener'
import { useVolume } from 'features/VideoPlayer/hooks/useVolume'
import { useNoNetworkPopupStore } from 'features/NoNetworkPopup'
import { useLiveMatch } from 'features/MatchPage/components/LiveMatch/hooks'
import type { Chapters } from 'features/StreamPlayer/types'
@ -79,6 +80,9 @@ export const useVideoPlayer = ({
seeking,
}, setPlayerState] = useObjectState({ ...initialState, chapters: chaptersProps })
const { onPlaylistSelect, selectedPlaylist } = useLiveMatch()
const [pauseTime, setPauseTime] = useState(0)
const { url } = chapters[0] ?? { url: '' }
const numberOfChapters = size(chapters)
const { hls, videoRef } = useHlsPlayer(url, resumeFrom)
@ -96,6 +100,7 @@ export const useVideoPlayer = ({
stopPlaying,
togglePlaying,
} = usePlayingHandlers(setPlayerState, chapters)
console.log('playedProgress', playedProgress, '|', 'chapters =', chapters)
const getActiveChapter = useCallback(
(index: number = activeChapterIndex) => chapters[index],
@ -232,21 +237,45 @@ export const useVideoPlayer = ({
...initialState,
chapters: chaptersProps,
playing: true,
seek: chaptersProps[0].startOffsetMs / 1000,
seek: (pauseTime || chaptersProps[0].startOffsetMs) / 1000,
})
}, [
chapters,
chaptersProps,
isLive,
setPlayerState,
pauseTime,
])
console.log('pauseTime', pauseTime, '\n', 'chapters', chapters, '\n', 'playedProgress', playedProgress, '\n', 'selectedPlaylist', selectedPlaylist)
useEffect(() => {
if (!isLive) return
if (isLive && selectedPlaylist?.id !== 'full_game') {
// setPauseTime(playedProgress)
}
}, [selectedPlaylist])
useEffect(() => {
if ((isLive && chapters[0]?.isFullMatchChapter) || isEmpty(chapters)) return
const { duration: chapterDuration } = getActiveChapter()
if (playedProgress >= chapterDuration && !seeking) {
if (playedProgress >= chapterDuration && !seeking && !isLive) {
playNextChapter()
} else if (playedProgress >= chapterDuration && !seeking && isLive) {
onPlaylistSelect({
duration: 0,
episodes: [],
id: 'full_game',
lexic: 13028,
type: 0,
})
console.log('newChapters', chapters)
seekTo(pauseTime)
// setPlayerState({
// ...initialState,
// chapters: chaptersProps,
// seek: pauseTime / 1000,
// })
}
}, [
isLive,

Loading…
Cancel
Save