···1import React, {useCallback, useEffect, useRef, useState} from 'react'
23-import {isSafari} from '#/lib/browser'
4import {useVideoVolumeState} from '../../VideoVolumeContext'
56export function useVideoElement(ref: React.RefObject<HTMLVideoElement>) {
···38 const handleTimeUpdate = () => {
39 if (!ref.current) return
40 setCurrentTime(round(ref.current.currentTime) || 0)
41- // HACK: Safari randomly fires `stalled` events when changing between segments
42- // let's just clear the buffering state if the video is still progressing -sfn
43- if (isSafari) {
44- if (bufferingTimeout) clearTimeout(bufferingTimeout)
45- setBuffering(false)
46- }
47 }
4849 const handleDurationChange = () => {