Javascript : 获取当前播放的HTMLAudioElement
Javascript : Get the HTMLAudioElement currently playing
如何访问当前正在播放的 HTMLAudioElement
,而我对此一无所知?它不是页面中的 <audio>
标记,它是
audio_element = document.createElement('audio');
但是现在(在我想让音频暂停的时候)DOM 已经被
修改了
$('#details').html('').load(ajax_loader, "id=" + id, function() {
<!-- another playlist -->
}
而且我似乎无法取回我的 audio
元素。 它不再在 DOM 中,但音频仍在播放 很好顺便说一句,但现在我想播放其他内容。当我这样做时,我可以听到两个音频文件。
所以我的问题真的只是:如何在不知道 任何 的情况下访问当前正在播放的 HTMLAudioElement
?
如果您在创建音频元素时保留对音频元素的引用,您仍然可以通过该引用访问音频元素,然后清除该引用以将其作为垃圾回收。因此,一个使用全局变量的简单示例(不是好的做法,但您可以修改它以在您的模块中工作)是:
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 and the WhatWG specification https://developers.whatwg.org/the-video-element.html#the-video-element
如果不引用,您无法访问元素。
所以在那种情况下你有两种方法:
- 将音频元素插入 DOM
document.body.appendChild(document.createElement('audio'))
并通过 css display: none;
将其隐藏,然后您可以使用 document.getElementsByTagName('audio')
[ 获取访问权限=27=]
- 在某些范围内保存对音频元素的引用:
window.audioElement = document.createElement('audio')
谢谢
如何访问当前正在播放的 HTMLAudioElement
,而我对此一无所知?它不是页面中的 <audio>
标记,它是
audio_element = document.createElement('audio');
但是现在(在我想让音频暂停的时候)DOM 已经被
修改了$('#details').html('').load(ajax_loader, "id=" + id, function() {
<!-- another playlist -->
}
而且我似乎无法取回我的 audio
元素。 它不再在 DOM 中,但音频仍在播放 很好顺便说一句,但现在我想播放其他内容。当我这样做时,我可以听到两个音频文件。
所以我的问题真的只是:如何在不知道 任何 的情况下访问当前正在播放的 HTMLAudioElement
?
如果您在创建音频元素时保留对音频元素的引用,您仍然可以通过该引用访问音频元素,然后清除该引用以将其作为垃圾回收。因此,一个使用全局变量的简单示例(不是好的做法,但您可以修改它以在您的模块中工作)是:
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 and the WhatWG specification https://developers.whatwg.org/the-video-element.html#the-video-element
如果不引用,您无法访问元素。
所以在那种情况下你有两种方法:
- 将音频元素插入 DOM
document.body.appendChild(document.createElement('audio'))
并通过 cssdisplay: none;
将其隐藏,然后您可以使用document.getElementsByTagName('audio')
[ 获取访问权限=27=] - 在某些范围内保存对音频元素的引用:
window.audioElement = document.createElement('audio')
谢谢