реагирует на текущее время во время воспроизведения - PullRequest
0 голосов
/ 14 мая 2018

У меня есть этот аудиоплеер, и мне нужно иметь возможность изменять currentTime во время воспроизведения аудиофайла.В настоящее время я могу изменить currentTime, только когда звук приостановлен.Что я должен изменить в своем коде?

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 голосов
/ 14 мая 2018

вы должны обновить currentTime на состояние , например:

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

function changeCurrentTime(time) { 
  this.setState({ currentTime: time })
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...