HTML 5 タグを含むサウンド ファイルをロードし、マウス クリックでそのサウンド ファイルの新しいインスタンスの再生を開始する jQuery を使用して JavaScript を少し作成し<audio>
ました (並列/オーバーレイで複数回再生できるようにするため)。
HTML:
<audio id="audiotemplate" src="audio/myfile.ogg"></audio>
JavaScript:
mybutton.click(function() {
$('#audiotemplate').clone()[0].play();
});
これは意図したとおりに機能しますが、メモリ リークが発生し、ボタンを何度もクリックすると FF がシステム RAM を使い果たし、Chromium が「Ah, Snap」ページを表示します。
編集:簡単なテストでは、ボタンを押したままにする$(document).keypress
代わりに使用することをお勧めします。mybutton.click
<audio>
サウンド ファイルの再生が終了した後に要素をクリーンアップする方法は?
注:複製された要素をページに挿入しません。
注2:クリックしてもリークが発生し、音が終わるまで待って、もう一度クリックします...
(解決策には満足していますが、リークが発生する理由の説明にも感謝しています。)