HTML5音频播放列表 – 如何在第一个音频文件结束后播放第二个音频文件?
在另一个完成后,我们怎么能在html5播放中制作一些音频?
我已尝试使用jquery delay()
函数,但它根本无法工作,是否可以使用带有计时器的html5音频中的pause()
? 例如, pause('500',function(){});
?
这是一个JSLinted,不显眼的Javascript 示例,演示如何处理和使用已ended
mediaevent 。 在您的特定情况下,您将在已ended
事件处理程序中触发第二个音频文件的播放。
您可以使用下面的代码或运行测试小提琴 。
单击播放列表中的项目开始播放。 一个音频结束后,下一个音频将开始。
标记:(注意故意避免
元素之间的空格 – 这是为了简化使用nextSibling
遍历DOM。)
- Space 1
- Space 2
- Space Lab
脚本:
// globals var _player = document.getElementById("player"), _playlist = document.getElementById("playlist"), _stop = document.getElementById("stop"); // functions function playlistItemClick(clickedElement) { var selected = _playlist.querySelector(".selected"); if (selected) { selected.classList.remove("selected"); } clickedElement.classList.add("selected"); _player.src = clickedElement.getAttribute("data-ogg"); _player.play(); } function playNext() { var selected = _playlist.querySelector("li.selected"); if (selected && selected.nextSibling) { playlistItemClick(selected.nextSibling); } } // event listeners _stop.addEventListener("click", function () { _player.pause(); }); _player.addEventListener("ended", playNext); _playlist.addEventListener("click", function (e) { if (e.target && e.target.nodeName === "LI") { playlistItemClick(e.target); } });
如果这是您的音频标签:
然后为“已结束”事件添加一个事件监听器,可以更改源并播放下一个声音。
var audio = document.getElementById("player"); audio.addEventListener("ended", function() { audio.src = "nextAudio.mp3"; audio.play(); });
如果你正在使用chrome,你应该知道目前有一个错误,它不允许重放音频标签。 要解决此问题,您可以重置src或以编程方式创建一个新的Audio
对象。
我想这个答案对你有帮助……
html5音频播放器 – jquery切换点击播放/暂停?
因此,您应该使用setTimeout或setInterval,而不是单击,您可以使用它来更.paused==false
地检查.paused==false
我认为您可以通过检查video的长度来检查它是否已完成并进行比较它有最大长度,= =文件结束。