Javascript 音频结束,重新洗牌变量并播放另一个音频
我在播放按钮上使用这个脚本,当单击它时,它会启动随机音频,当再次单击时,音频会停止 我的问题是,如果我不单击停止歌曲,歌曲将结束并重新开始-我希望这样,当歌曲结束时,它将重新排列变量并获取新歌曲,而不是重复第一首歌曲Javascript 音频结束,重新洗牌变量并播放另一个音频,javascript,html,Javascript,Html,我在播放按钮上使用这个脚本,当单击它时,它会启动随机音频,当再次单击时,音频会停止 我的问题是,如果我不单击停止歌曲,歌曲将结束并重新开始-我希望这样,当歌曲结束时,它将重新排列变量并获取新歌曲,而不是重复第一首歌曲 var sounds = [ "sounds/royksopp.mp3", "sounds/9thwonder.mp3", "sounds/thisbeat.mp3", "sounds/mosdef.mp3", "sounds/bewater
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=srcaudo代码>
您可以在此处查看播放按钮:
代码更新:
我补充说:
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);
}
现在音频在结束时停止。我做错了什么吗?您可以在开始()和停止()时设置切换变量isplay=true
因此,如果该变量为true(用户仍希望侦听),则在结束的侦听器中添加如下内容:
audie.addEventListener('ended', function() {
this.currentTime = 0;
if(isPlaying)
{
this.src = sounds[Math.floor(Math.random()*sounds.length)];
this.play();
}
}, false);
我认为如果您在上一首歌结束后设置一个新的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();
}
我已经用给你的答案更新了我的帖子,所以它保持格式不变。