我正尝试在Dart和Chrome中使用html5音频,并且正在尝试尽可能简单地使用AudioElement的简单方法。我希望能够暂停声音并稍后再恢复。我有:

startSound() {
  audioElement.src = "foo";
  audioElement.load();
  audioElement.play();
}

pause() {
  this.time = audioElement.currentTime;
  audioElement.pause();
}

unpause() {
  audioElement.currentTime = this.time;
  audioElement.play();
}

这些已连接到事件处理程序,因此当有人单击“暂停”按钮时,播放停止。但是,当他们按下“恢复”按钮时,播放仅恢复大约半秒钟,然后再次停止。

如何使音频正确恢复?

最佳答案

Chrome中似乎存在计时问题。您需要让Chrome播放,然后再次暂停,然后再次播放,每次播放之间都需要短暂的延迟。
unpause方法的有效版本是:

unpause() {
  var fn = () {
    audioElement.currentTime = this.time;
    audioElement.play();
  };
  fn();
  window.setTimeout(() => audioElement.pause(), 25);
  window.setTimeout(fn, 50);
}

关于html - AudioElement一秒钟恢复播放停顿并停止,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11810166/

10-09 04:20