diff --git a/packages/app/src/components/EmbbededMediaPlayer/index.jsx b/packages/app/src/components/EmbbededMediaPlayer/index.jsx index 55e8695a..ca5be61f 100755 --- a/packages/app/src/components/EmbbededMediaPlayer/index.jsx +++ b/packages/app/src/components/EmbbededMediaPlayer/index.jsx @@ -2,7 +2,6 @@ import React from "react" import * as antd from "antd" import Slider from "@mui/material/Slider" import classnames from "classnames" -import Ticker from "react-ticker" import { Icons, createIconRender } from "components/Icons" @@ -38,6 +37,7 @@ class SeekBar extends React.Component { durationText: "00:00", sliderTime: 0, sliderLock: false, + streamMode: false, } handleSeek = (value) => { @@ -58,6 +58,19 @@ class SeekBar extends React.Component { // get current audio duration const audioDuration = app.cores.player.duration() + // if duration is infinity, set stream mode + if (audioDuration === Infinity) { + this.setState({ + streamMode: true, + }) + + return + } + + if (isNaN(audioDuration)) { + return + } + console.log(`Audio duration: ${audioDuration}`) // convert duration to minutes and seconds @@ -150,6 +163,7 @@ class SeekBar extends React.Component { this.setState({ timeText: "00:00", sliderTime: 0, + streamMode: false, }) this.calculateDuration() @@ -168,12 +182,14 @@ class SeekBar extends React.Component { } tick = () => { - if (this.props.playing) { + if (this.props.playing || this.state.streamMode) { this.interval = setInterval(() => { this.updateAll() }, 1000) } else { - clearInterval(this.interval) + if (this.interval) { + clearInterval(this.interval) + } } } @@ -199,12 +215,26 @@ class SeekBar extends React.Component { } render() { - return