p5.j​​s Safari播放()暂停()跳转()问题

时间:2019-07-23 22:46:35

标签: safari soundcloud p5.js

我正在尝试使用p5.js Javascript LibrarySoundcloud API制作音频播放器。大部分都能正常运行,但是我在Safari浏览器中遇到了一些小问题。

This is the website,而具有所有功能的javascript文件为sketch.js

网站上有一个进度条,单击该进度条应jump到歌曲中的某个位置。

var progressBar = document.getElementById('progressBar');
progressBar.addEventListener("click", function(progbar) {
  var percent = (progbar.offsetX / this.offsetWidth);
  sound.jump(sound.duration() * percent);
  sound.onended(endSong);
}, false);

在Firefox中,只要设置了sound.playMode('restart'),它就可以正常工作。但是Safari创建了一个InvalidStateError

sound.playMode('sustain')设置为Firefox和Safari时,jump均会ReactDOMServer设置到歌曲中的某个位置,但是该歌曲会播放两次。

有人知道这里可能有什么问题吗?

1 个答案:

答案 0 :(得分:0)

对于Safari,Firefox和Chrome,我有以下解决方法:

progressBar.addEventListener("click", function(progbar) {
  percent = (progbar.offsetX / this.offsetWidth);
  setTimeout(function(){
    Object.assign(sound, {_playing: true});
    sound.playMode('restart');
  }, 100);
  sound.stop();
  sound.playMode('sustain');
  sound.jump(sound.duration() * percent);
}, false);