2

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

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

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

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

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

如何让音频正常恢复?

4

2 回答 2

1

Chrome 中似乎存在时间问题。您需要告诉 Chrome 播放,然后再次暂停,然后再次播放,两者之间有短暂的延迟。

该方法的工作版本unpause是:

unpause() {
  var fn = () {
    audioElement.currentTime = this.time;
    audioElement.play();
  };
  fn();
  window.setTimeout(() => audioElement.pause(), 25);
  window.setTimeout(fn, 50);
}
于 2012-08-04T16:24:49.830 回答
0

我对 Chrome 也有类似的问题。当我“恢复”音频元素时,它在播放前出现口吃,我在 Safari 中没有遇到同样的问题。然而事实证明,Chrome 不知何故对我的 mp3 格式不满意。将文件的 ogg 版本添加到我的标签中的源解决了这个问题。

于 2012-10-28T21:34:39.907 回答