2

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();
}

これらはイベント ハンドラーに接続されているため、誰かが「一時停止」ボタンをクリックすると、再生が停止します。ただし、「再開」ボタンを押すと、再生が再開されるのは約 0.5 秒だけで、その後再び停止します。

オーディオを正しく再開するにはどうすればよいですか?

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 に答える