react-toque-player-hlstream
v0.6.0
Published
<br />
Readme
Documentação
ou
... const position = 0;
await ToquePlayer.initPlayer(playlist, position); await ToquePlayer.play();
const [stateProgress, setStateProgress] = useState<SeekProgressType>(INITIAL);
useEffect(() => {
PlayerModule.addEventPlayerListener(PlayerEventEnum.TrackChanged, () => {
setStateProgress(INITIAL);
});
}, []);
useEffect(() => {
let mounted = true;
const update = async () => {
try {
const { duration, currentTime } = PlayerModule.getDuration();
if (!mounted) return;
setStateProgress((stateProgress: SeekProgressType) =>
currentTime === stateProgress.currentTime &&
duration === stateProgress.duration
? stateProgress
: { currentTime, duration }
);
} catch {
}
}
const poll = async () => {
await update();
if (!mounted) return;
await new Promise<void>((resolve) => setTimeout(resolve, updateInterval));
if (!mounted) return;
poll();
};
poll();
return () => {
mounted = false;
};
}, [updateInterval]);
return { stateProgress, setStateProgress };
}