javascript - 音频结束,重新洗牌变量并播放另一个音频
问题描述
我在播放按钮上使用此脚本,单击它会启动随机音频,再次单击音频会停止。
我的问题是,如果我不单击停止歌曲,歌曲将结束并重新开始 - 我想让它在歌曲结束时重新调整变量并获取一首新歌曲,而不是重复第一个。
var sounds = [
"sounds/royksopp.mp3",
"sounds/9thwonder.mp3",
"sounds/thisbeat.mp3",
"sounds/mosdef.mp3",
"sounds/bewater.mp3",
"sounds/boutdre.mp3",
"sounds/masterflash.mp3",
"sounds/2ep.mp3",
"sounds/drewestcoast.mp3",
"sounds/poetry.mp3",
"sounds/mfdoom.mp3",
"sounds/imnot.mp3",
"sounds/jamba.mp3",
"sounds/meetyour.mp3",
"sounds/popyacork.mp3",
"sounds/dreams.mp3",
"sounds/unders.mp3",
"sounds/oizo.mp3", ];
function Start(audioFile) {
srcAudio = sounds[Math.floor(Math.random()*sounds.length)];
var audie = document.getElementById("myAudio");
audie.addEventListener('ended', function() {
this.currentTime = 0;
this.play();
}, false);
$(audie).animate({volume: 0.9}, 0);
audie.src = srcAudio;
audie.play();
}
function Stop(audioFile) {
var audie = document.getElementById("myAudio");
$(audie).animate({volume: 0}, 400);
}
我想我必须改变一些东西audie.src = srcAudio;
?
您可以在此处查看“播放”按钮:https ://www.vtxfactory.org/
代码更新:我添加了:
var sounds = [
"sounds/royksopp.mp3",
"sounds/9thwonder.mp3",
"sounds/thisbeat.mp3",
"sounds/mosdef.mp3",
"sounds/bewater.mp3",
"sounds/boutdre.mp3",
"sounds/masterflash.mp3",
"sounds/2ep.mp3",
"sounds/drewestcoast.mp3",
"sounds/poetry.mp3",
"sounds/mfdoom.mp3",
"sounds/imnot.mp3",
"sounds/jamba.mp3",
"sounds/meetyour.mp3",
"sounds/popyacork.mp3",
"sounds/dreams.mp3",
"sounds/unders.mp3",
"sounds/oizo.mp3", ];
function Start(audioFile) {
srcAudio = sounds[Math.floor(Math.random()*sounds.length)];
var audie = document.getElementById("myAudio");
audie.addEventListener('ended', function() {
this.currentTime = 0;
if(isPlaying)
{
this.src = sounds[Math.floor(Math.random()*sounds.length)];
this.play();
}
}, false);
$(audie).animate({volume: 0.9}, 0);
audie.src = srcAudio;
audie.play();
}
function Stop(audioFile) {
var audie = document.getElementById("myAudio");
$(audie).animate({volume: 0}, 400);
}
现在音频在结束时停止。难道我做错了什么?
解决方案
我认为如果您在上一首歌曲结束后设置一个新的 src,您的第一个代码会很好。
function Start(audioFile) {
srcAudio = sounds[Math.floor(Math.random()*sounds.length)];
var audie = document.getElementById("myAudio");
audie.addEventListener('ended', function() {
this.currentTime = 0;
this.src = sounds[Math.floor(Math.random()*sounds.length)];
this.play();
}, false);
$(audie).animate({volume: 0.9}, 0);
audie.src = srcAudio;
audie.play();
}
推荐阅读
- c - 自由函数结果混淆
- regex - 如何为 CTest 指定正则表达式
- javascript - 如何针对移动用户优化我的网站?
- javascript - 为元素设置属性的函数
- design-patterns - 寻找合适的术语:审计?可追溯性?记录?
- pytorch - 用我自己的值初始化 pytorch 卷积层
- typescript - 有没有办法用可选参数缩小打字稿重载?
- python - Python,Django:具有依赖项的 ForeignKey (models.py)
- firebase - 如何在本机反应中使用 Invisible reCAPTCHA
- python - 有没有绘制 PCA 和 kmeans 的方法?