我们如何在
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);
- }
- });
-