reactjs在播放时改变音频的当前时间

时间:2018-05-14 11:15:22

标签: reactjs audio

我有这个音频播放器,我需要能够在播放音频文件时更改当前时间。目前我只能在音频暂停时更改当前时间。我应该在代码中更改什么?

playAudio(playing_url) {
    let audio = new Audio(playing_url);
    audio.addEventListener('loadedmetadata', () => {
        audio.currentTime = audio.duration * this.state.progress;
        console.log('event listener', audio.duration);
    });
    if(!this.state.playing) {
        audio.play();
        this.setState({
            playing: true,
            playing_story: playing_url,
            audio
        });
    } else {
        if(this.state.playing_story === playing_url) {
            this.state.audio.pause();
            this.setState({
                playing: false
            })
        } else {
            this.state.audio.pause();
            audio.play();
            this.setState({
                playing: true,
                playing_story: playing_url,
                audio
            })
        }
    }

}

1 个答案:

答案 0 :(得分:0)

你应该按照状态更新currentTime:

audio.addEventListener('loadedmetadata', () => {
    // some code to calculate currentTime for first time
    audio.currentTime = this.state.currentTime;
});

function changeCurrentTime(time) { 
  this.setState({ currentTime: time })
}