我有一些代码可以创建一个<音频>当我点击按钮时,元素和播放歌曲。到现在为止还挺好。
按钮从“播放音乐”变为“停止音乐”。现在我添加了这段代码:
audioElement.addEventListener('ended', function() {
$('span#pause').fadeOut('slow');
$('span#play').delay(1500).fadeIn('slow');
});
当歌曲结束时,技术上应该再次显示播放按钮。但事实并非如此。有谁可以告诉我为什么?
以下是整个代码:
$(document).ready(function() {
var songList = [
'song1.ogg',
'song2.ogg',
'song3.ogg'
];
var randomNumber = Math.floor(Math.random()*songList.length);
var audioElement = document.createElement('audio');
audioElement.setAttribute('src', songList[randomNumber]);
audioElement.load();
audioElement.addEventListener('ended', function() {
$('span#pause').fadeOut('slow');
$('span#play').delay(1500).fadeIn('slow');
});
$('#play').click(function() {
audioElement.play();
$('span#play').fadeOut('slow');
$('span#pause').delay(1500).fadeIn('slow');
});
$('#pause').click(function() {
audioElement.pause();
$('span#pause').fadeOut('slow');
$('span#play').delay(1500).fadeIn('slow');
});
});
答案 0 :(得分:2)
您在评论中回答问题以开始播放下一首歌:更改src
标记的audio
- 属性。例如。添加一个名为“next”的新button
和以下脚本:
$('#next').click(function() {
randomNumber = (randomNumber + 1) % songList.length;
audioElement.setAttribute('src', songList[randomNumber]);
$('#play').click();
});
另请参阅更新后的jsfiddle。
=== UPDATE ===
randonNumber
会递增。 modulo %
(除法的剩余部分)阻止该数字高于歌曲数量。audio
标签的来源将设置为下一首歌。click
event will be triggered,就像有人点击了play button
一样,play click handler
启动了这首歌,并更改了button
的可见度。