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的长度来检查它是否已完成并进行比较它有最大长度,= =文件结束。