我一直让我的网络标签显示我的播放器在音乐暂停时正在获取数据。我让它播放了 5 秒,它在暂停时继续加载几分钟。
我的代码
const [playing, setPlaying] = useState<boolean>(false);
const musicPlayers = useRef<HTMLAudioElement | undefined>(
typeof Audio !== "undefined"
? new Audio("ss")
: undefined
);
useEffect(() => {
playing ? musicPlayers.current?.play() : musicPlayers.current?.pause();
}, [playing]);
<button onClick={() => {
setPlaying(!playing);
// setPlaying(!playing);
// setIsPlaying(!isPlaying);
}}
></button>
知道为什么会这样吗?
答案 0 :(得分:1)
解决方案是对 chrome 执行此操作(问题仅在 chrome 上)
useEffect(() => {
if (!playing) {
musicPlayers.current?.pause();
musicPlayers.current = new Audio("");
} else {
musicPlayers.current = new Audio("s");
musicPlayers.current?.play();
}
}, [playing]);