p5.js Safari play()pause()jump()问题

问题描述 投票:1回答:1

我正在尝试使用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均等地设置到歌曲中的某个位置,但该歌曲播放了两次。

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

safari soundcloud p5.js
1个回答
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);
© www.soinside.com 2019 - 2024. All rights reserved.