如何在不知道任何内容的情况下访问当前正在播放的HTMLAudioElement
?它不是页面中的<audio>
标记,而是
audio_element = document.createElement('audio');
但现在(当我希望音频暂停时),DOM已被
修改$('#details').html('').load(ajax_loader, "id=" + id, function() {
<!-- another playlist -->
}
我似乎无法找回我的audio
元素。 它不再在DOM中,但音频仍在播放女巫很好BTW,但现在我想玩别的东西。当我这样做时,我可以听到两个音频文件。
所以我真正的问题是:如何在不知道任何的情况下访问当前正在播放的HTMLAudioElement
?
答案 0 :(得分:1)
如果在创建音频元素时保留对音频元素的引用,您仍然可以通过该引用访问音频元素,然后清除引用以将其收集垃圾。因此,使用全局变量的一个简单示例(不是很好的做法,但您可以将其修改为在您的模块中工作)是:
window.audio_element = document.createElement('audio');
然后再
window.audio_element.pause();
window.audio_element = undefined;
以下是对mozilla文档https://developer.mozilla.org/en-US/docs/Web/HTML/Element/audio和WhatWG规范https://developers.whatwg.org/the-video-element.html#the-video-element
的引用答案 1 :(得分:1)
您无法访问元素而无需参考。
因此,在这种情况下,您有两种方式:
document.body.appendChild(document.createElement('audio'))
中插入音频元素并通过css display: none;
隐藏它,然后您可以document.getElementsByTagName('audio')
window.audioElement = document.createElement('audio')
由于