Одним из подходов к этой проблеме будет запрос всех аудиоэлементов в документе, а затем перебрать те из них, чтобы найти первый экземпляр, где ispasued
не соответствует действительности:
function getCurrentlyPlayingAudio() {
for(const audio of document.querySelectorAll('audio')) {
if(!audio.paused) {
return audio;
}
}
// return undefined if no such audio element found
}
В этом решении используетсяродной querySelectorAll()
метод для запроса аудиоэлементов, поэтому он не зависит от jQuery.
Чтобы затем запросить «текущий воспроизводимый аудиоэлемент» после начала воспроизведения аудиоэлемента, вы можетеиспользовать предложенный способ следующим образом:
document.querySelectorAll('audio').forEach(audio => {
audio.addEventListener('play', () => {
const currentPlaying = getCurrentlyPlayingAudio();
console.log('current playing audio:', currentPlaying);
});
});