feat(in-132): videoplayer bugfix

keep-around/44e70269ba4e4c3ea8c912424bbb3a0e479f07f4
Rita 3 years ago
parent 5f47bbce1b
commit 44e70269ba
  1. 4
      src/features/MatchPage/store/hooks/index.tsx
  2. 6
      src/features/StreamPlayer/hooks/index.tsx
  3. 18
      src/features/StreamPlayer/hooks/useHlsPlayer.tsx

@ -57,11 +57,11 @@ export const useMatchPage = () => {
let getIntervalMatch: ReturnType<typeof setInterval> let getIntervalMatch: ReturnType<typeof setInterval>
if (matchProfile?.live && !matchProfile.youtube_link) { if (matchProfile?.live && !matchProfile.youtube_link) {
getIntervalMatch = setInterval( getIntervalMatch = setInterval(
() => getMatchInfo(sportType, matchId).then(setMatchProfile), 1000 * 60 * 3, () => getMatchInfo(sportType, matchId).then(setMatchProfile), 5000,
) )
} }
return () => clearInterval(getIntervalMatch) return () => clearInterval(getIntervalMatch)
}, [matchProfile, sportType, matchId]) })
const { const {
events, events,

@ -98,7 +98,11 @@ export const useVideoPlayer = ({
const { url } = chapters[0] ?? { url: '' } const { url } = chapters[0] ?? { url: '' }
const numberOfChapters = size(chapters) const numberOfChapters = size(chapters)
const { hls, videoRef } = useHlsPlayer(url, resumeFrom) const { hls, videoRef } = useHlsPlayer({
isLive,
resumeFrom,
src: url,
})
const [isLiveTime, setIsLiveTime] = useState(false) const [isLiveTime, setIsLiveTime] = useState(false)
const [isPausedTime, setIsPausedTime] = useState(false) const [isPausedTime, setIsPausedTime] = useState(false)
const [pausedProgress, setPausedProgress] = useState(0) const [pausedProgress, setPausedProgress] = useState(0)

@ -9,7 +9,17 @@ import isNumber from 'lodash/isNumber'
import { streamConfig } from '../config' import { streamConfig } from '../config'
export const useHlsPlayer = (src: string, resumeFrom?: number) => { type useHlsPlayerType = {
isLive?: boolean,
resumeFrom?: number,
src: string,
}
export const useHlsPlayer = ({
isLive,
resumeFrom,
src,
}: useHlsPlayerType) => {
const hls = useMemo(() => { const hls = useMemo(() => {
if (!Hls.isSupported()) return null if (!Hls.isSupported()) return null
@ -19,7 +29,11 @@ export const useHlsPlayer = (src: string, resumeFrom?: number) => {
} }
return new Hls(newStreamConfig) return new Hls(newStreamConfig)
// eslint-disable-next-line react-hooks/exhaustive-deps // eslint-disable-next-line react-hooks/exhaustive-deps
}, [resumeFrom, src]) }, [
resumeFrom,
src,
isLive,
])
const videoRef = useRef<HTMLVideoElement>(null) const videoRef = useRef<HTMLVideoElement>(null)

Loading…
Cancel
Save