From e21a02a5da2a0483bca7779d4fe19e635a429e62 Mon Sep 17 00:00:00 2001 From: SrGooglo Date: Thu, 3 Aug 2023 07:20:57 +0000 Subject: [PATCH] fix seekbar initial states --- packages/app/src/components/Player/SeekBar/index.jsx | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/packages/app/src/components/Player/SeekBar/index.jsx b/packages/app/src/components/Player/SeekBar/index.jsx index a158040f..46353c9f 100644 --- a/packages/app/src/components/Player/SeekBar/index.jsx +++ b/packages/app/src/components/Player/SeekBar/index.jsx @@ -8,7 +8,7 @@ import "./index.less" export default class SeekBar extends React.Component { state = { - playing: false, + playing: app.cores.player.state["playback_status"] === "playing", timeText: "00:00", durationText: "00:00", sliderTime: 0, @@ -31,7 +31,7 @@ export default class SeekBar extends React.Component { calculateDuration = (preCalculatedDuration) => { // get current audio duration - const audioDuration = preCalculatedDuration || app.cores.player.duration() + const audioDuration = preCalculatedDuration ?? app.cores.player.duration() if (isNaN(audioDuration)) { return @@ -102,6 +102,10 @@ export default class SeekBar extends React.Component { }, // handle when player changes track "player.state.update:track_manifest": (manifest) => { + if (!manifest) { + return false + } + this.updateAll() this.setState({ @@ -131,6 +135,7 @@ export default class SeekBar extends React.Component { componentDidMount = () => { this.calculateDuration() + this.updateAll() this.tick() for (const [event, callback] of Object.entries(this.events)) {