Я написал немного JavaScript с помощью jQuery, который загружает звуковой файл с тегом HTML 5 <audio>
и, щелкнув мышью, начинает воспроизводить новый экземпляр этого звукового файла (чтобы он мог воспроизводиться несколько раз параллельно / наложение).
HTML:
<audio id="audiotemplate" src="audio/myfile.ogg"></audio>
JavaScript:
mybutton.click(function() {
$('#audiotemplate').clone()[0].play();
});
Это работает так, как задумано, но создает утечку памяти, которая приводит к тому, что FF поглощает системную память и Chromium, если вы нажимаете кнопку слишком много раз.
РЕДАКТИРОВАТЬ: Для быстрого теста лучше использовать $(document).keypress
вместо mybutton.click
и держать кнопку нажатой.
Как очистить элемент <audio>
после завершения воспроизведения звукового файла?
ПРИМЕЧАНИЕ: Я не вставляю клонированный элемент в страницу.
ПРИМЕЧАНИЕ 2: Утечка также происходит, если вы щелкнете, подождите, пока не закончится звук, кликните снова ...
(Я доволен решением, но также ценю объяснение, почему утечка вообще происходит.)