Javascript 获取当前播放的<;音频>;包含多个音频文件的页面上的文件
我在一个页面上有多个音频文件,我希望通过JQuery获得播放音频文件 这是我尝试过的,但只得到了第一个:Javascript 获取当前播放的<;音频>;包含多个音频文件的页面上的文件,javascript,jquery,html,audio,Javascript,Jquery,Html,Audio,我在一个页面上有多个音频文件,我希望通过JQuery获得播放音频文件 这是我尝试过的,但只得到了第一个: var audio = document.querySelector('audio'); audio.addEventListener('play', function() { console.log($(this)); }); 我是否可以只获取当前正在播放的页面上的音频文件?解决此问题的一种方法是查询文档中的所有音频元素,然后对这
var audio = document.querySelector('audio');
audio.addEventListener('play', function() {
console.log($(this));
});
我是否可以只获取当前正在播放的页面上的音频文件?解决此问题的一种方法是查询文档中的所有音频元素,然后对这些元素进行迭代,以找到
ispasued
不真实的第一个实例:
function getCurrentlyPlayingAudio() {
for(const audio of document.querySelectorAll('audio')) {
if(!audio.paused) {
return audio;
}
}
// return undefined if no such audio element found
}
此解决方案使用本机方法查询音频元素,因此不依赖于jQuery
要在音频元素开始播放后查询“当前播放音频元素”,可以按以下方式使用建议的方法:
document.querySelectorAll('audio').forEach(audio => {
audio.addEventListener('play', () => {
const currentPlaying = getCurrentlyPlayingAudio();
console.log('current playing audio:', currentPlaying);
});
});
谢谢
我也改变了我原来的答案,这起了作用
var audList = document.getElementsByTagName("audio");
for (var i = 0; i < audList.length; i++) {
audList[i].addEventListener("play", onPlay, false);
audList[i].addEventListener("ended", onEnded, false);
}
function onPlay(e) {
console.log(e.target.id + " Well hello there!");
console.log($(this));
};
function onEnded(e) {
console.log(e.target.id + " Left this audio.");
};
var audList=document.getElementsByTagName(“音频”);
对于(变量i=0;i
谢谢,不幸的是,当我播放音频时,此功能无法运行。我希望每次播放音频时都能运行此功能,我应该能够获得播放元素。@Steve不客气-只是扩展了答案。这有用吗?谢谢。我也改变了我原来的答案,这起了作用。不过我接受你的回答。谢谢。