javascript - 播放多个 HTML 5 音频
问题描述
出于某种原因,我无法在我的页面上播放多个音频。它之前确实有一个 ID,然后我在 Stackoverflow 上的某个地方读到一个 ID 是唯一的,所以我将它更改为有一个类,现在它根本不播放。但是当它是 getElementbyId 时,只有一个音频正在播放,而不是全部。我添加了错误的代码吗?请帮忙
我在这里有这段代码:
这是以前的样子
<audio id="nyan" src="https://elysian.dijestdesigns.com/wp-content/uploads/2020/02/Jessica_Roberts_Afrikaans_Corporate_SouthAfrican-sassa.mp3" preload="metadata" type="audio/mpeg">
Your browser does not support the audio element. </audio>
<a class="btn" id="nyan-btn"></a>
然后我把它改成了这个
<audio class="nyan" src="https://elysian.dijestdesigns.com/wp-content/uploads/2020/02/Jessica_Roberts_Afrikaans_Corporate_SouthAfrican-sassa.mp3" preload="metadata" type="audio/mpeg">
Your browser does not support the audio element. </audio>
<a class="btn" class="nyan-btn"></a>
<audio class="nyan" src="https://elysian.dijestdesigns.com/wp-content/uploads/2020/02/Jessica_Roberts_Afrikaans_Corporate_SouthAfrican-sassa.mp3" preload="metadata" type="audio/mpeg">
Your browser does not support the audio element. </audio>
<a class="btn" class="nyan-btn"></a>
和 Javascript
<script src="https://cdnjs.cloudflare.com/ajax/libs/modernizr/2.8.3/modernizr.min.js" type="text/javascript"></script>
<script>
/*it was getElementById*/
var nyan = document.getElementByClass("nyan");
var nyanBtn = document.getElementByClass("nyan-btn");
function playPause(song) {
if (song.paused && song.currentTime >= 0 && !song.ended) {
song.play();
} else {
song.pause();
}
}
function reset(btn, song) {
if (btn.classList.contains("playing")) {
btn.classList.toggle("playing");
}
song.pause();
song.currentTime = 0;
}
function progress(btn, song) {
console.log("PROGRESS");
setTimeout(function () {
var end = song.duration;
var current = song.currentTime;
var percent = current / (end / 100);
//check if song is at the end
if (current == end) {
reset(btn, song);
}
//set inset box shadow
btn.style.boxShadow =
"inset " +
btn.offsetWidth * (percent / 100) +
"px 0px 0px 0px rgba(0,0,0,0)";
//call function again
progress(btn, song);
}, 1000);
}
nyanBtn.addEventListener("click", function () {
nyanBtn.classList.toggle("playing");
playPause(nyan);
progress(nyanBtn, nyan);
});
</script>
解决方案
推荐阅读
- python - SplashRequest 给出 - TypeError: attrs() got an unexpected keyword argument 'eq'
- java - 访问root应用支持macos java
- python - 在 Python 中循环遍历列表不会返回预期的 True 或 False 值
- neo4j - MATCH 基于公共节点属性的总和
- laravel - 给定 [] 邮箱中的地址不符合 RFC 2822, 3.6.2。拉拉维尔
- mongodb - db.createView() 通过匹配和比较 mongodb 中的两个表
- nativescript - 允许在 webview Nativescript-vue 中全屏播放视频
- c - 在 do while 循环中出现“预期表达式”错误
- android - 只需要为移动设备设置纵向
- bash - 有没有办法让自己重新认识一个运行 bash 的 docker 容器?