我们如何在
html5播放之后再播放一些音频呢?
我已经尝试使用jquery delay()函数,但它根本不工作,是否可能使用pause()在html5音频与计时器?例如,pause(‘500’,function(){});?
解决方法
这是一个JSLinted,不引人注目的
Javascript示例,演示如何处理和使用结束的
mediaevent.在您的特定情况下,您将触发在您的结束事件处理程序中播放第二个音频文件.
您可以使用下面的代码或run the test fiddle.
单击播放列表中的项目开始播放.一个音频结束后,下一个音频开始.
标记:(注意,有意避免< li>元素之间的空格 – 这是为了简化使用nextSibling遍历DOM.)
<audio id="player"></audio> <ul id="playlist"><li data-ogg="http://www.lunerouge.org/sons/sf/LRWeird%201%20by%20Lionel%20Allorge.ogg">Space 1</li><li data-ogg="http://www.lunerouge.org/sons/sf/LRWeird%202%20by%20Lionel%20Allorge.ogg">Space 2</li><li data-ogg="http://www.lunerouge.org/sons/sf/LRWeird%203%20by%20Lionel%20Allorge.ogg">Space Lab</li></ul> <button id="stop">Stop</button>
脚本:
// 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); } });