HTML5オーディオ最初からやり直す 質問する

HTML5オーディオ最初からやり直す 質問する

持つ

var audio = new Audio("click.ogg")

必要に応じてクリック音を鳴らします

audio.play()

しかし、時々、ユーザーの反応が速すぎてブラウザがオーディオをまったく再生しないことがあります(おそらく前のplayリクエストを再生しているとき)。この問題は、プリロード?

ブラウザで再生を強制的に停止して最初からやり直すにはどうすればよいですか? はなくstoppauseHTML5 のオーディオ コンポーネントだけにあるんですよね? この場合、どのような回避策を使用できますか?


アップデート- 追加メモ:

イベントのあるチェックボックスのようなdiv要素が複数ありますtouchend。このようなイベントがトリガーされると、要素の視覚的な変化、サウンドの再生、およびそれに応じた内部変数の設定が行われます。ユーザーがこれらの要素をゆっくりタップすると、すべてうまく機能します。速くタップすると、サウンドが完全にスキップされることがよくあります...

ベストアンサー1

最も簡単な解決策は、オーディオをリセットしcurrentTime、メソッドを使用して再生されていることを確認することです。後続の呼び出しでは何も行われないplay()ため、オーディオが再生されているかどうかを確認する必要はありません。play()

audio.currentTime = 0;
audio.play();

おすすめ記事