|
|
|
@ -65,6 +65,7 @@ export default function AudioPlayer({
|
|
|
|
|
|
|
|
|
|
const audioRef = useRef(new Audio(''));
|
|
|
|
|
const isReady = useRef<boolean>(false); // 是否加载过组件
|
|
|
|
|
const isDrag = useRef<boolean>(false); // 是否拖动进度条
|
|
|
|
|
|
|
|
|
|
const [trackProgress, setTrackProgress] = useState<number>(0); // 音频进度(s)
|
|
|
|
|
const [duration, setDuration] = useState<number>(0); // 音频总时长(s)
|
|
|
|
@ -125,7 +126,9 @@ export default function AudioPlayer({
|
|
|
|
|
handleSwitchAudio(1);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
setTrackProgress(audioRef.current.currentTime);
|
|
|
|
|
if (!isDrag.current) {
|
|
|
|
|
setTrackProgress(audioRef.current.currentTime);
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
// 设置 mediaSession
|
|
|
|
@ -211,6 +214,7 @@ export default function AudioPlayer({
|
|
|
|
|
isReady.current = true;
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
// 切换歌曲
|
|
|
|
|
useEffect(() => {
|
|
|
|
|
switchNewAudio();
|
|
|
|
@ -279,9 +283,13 @@ export default function AudioPlayer({
|
|
|
|
|
|
|
|
|
|
{/* 进度条 */}
|
|
|
|
|
<ProgressBar
|
|
|
|
|
value={trackProgress}
|
|
|
|
|
currentTime={trackProgress}
|
|
|
|
|
duration={duration}
|
|
|
|
|
onChange={(value: number) => handleChangeProgress(value)}
|
|
|
|
|
onChange={(value: number) => setTrackProgress(value)}
|
|
|
|
|
onCommit={(value: number) => handleChangeProgress(value)}
|
|
|
|
|
onChangeDraging={(value: boolean) => {
|
|
|
|
|
isDrag.current = value;
|
|
|
|
|
}}
|
|
|
|
|
className="w-710px"
|
|
|
|
|
/>
|
|
|
|
|
|
|
|
|
|