HTML5音频播放列表 - 如何在第一个音频文件结束后播放第二个音频文件?

Kha*_*ara 13 javascript audio jquery html5 html5-audio

在另一个完成后,我们怎样才能在html5播放中制作一些音频?

我尝试过使用jquery delay()函数,但它根本不工作,是否可以pause()在html5音频中使用定时器?例如,pause('500',function(){});

Llo*_*oyd 14

这是一个JSLinted,不显眼的Javascript 示例,演示如何处理和使用ended mediaevent.在您的特定情况下,您将在ended事件处理程序中触发第二个音频文件的播放.

您可以使用下面的代码或运行测试小提琴.

单击播放列表中的项目开始播放.一个音频结束后,下一个音频将开始.

标记:(注意故意避免<li>元素之间的空格- 这是为了简化遍历DOM nextSibling.)

<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>
Run Code Online (Sandbox Code Playgroud)

脚本:

// 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);
    }
});?


?
Run Code Online (Sandbox Code Playgroud)

  • 这不是为你的问题提供一个精确的解决方案(怎么可能,我对你的游戏一无所知)..这是一个演示处理`ends`媒体事件的例子 - 这个事件在播放结束时触发..在此事件的处理程序中,编写一些代码来播放第二个音频文件. (2认同)

Emi*_*l H 11

如果这是您的音频标签:

<audio id="player" src="someAudio.mp3"/>
Run Code Online (Sandbox Code Playgroud)

然后为"已结束"事件添加一个事件监听器,可以更改源并播放下一个声音.

var audio = document.getElementById("player");
audio.addEventListener("ended", function() {
    audio.src = "nextAudio.mp3";
    audio.play();
});
Run Code Online (Sandbox Code Playgroud)