我们怎样才能在html5播放后制作一些音频?
我已尝试使用jquery delay()
函数,但它根本不起作用,是否可以在html5音频中使用pause()
而不是定时器?例如,pause('500',function(){});
?
答案 0 :(得分:14)
这是一个JSLinted,不显眼的Javascript 示例,演示了如何处理和使用ended
mediaevent。在您的特定情况下,您将在ended
事件处理程序中触发第二个音频文件的播放。
您可以使用以下代码或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);
}
});
答案 1 :(得分:11)
如果这是您的音频标签:
<audio id="player" src="someAudio.mp3"/>
然后为“已结束”事件添加一个事件监听器,可以更改源并播放下一个声音。
var audio = document.getElementById("player");
audio.addEventListener("ended", function() {
audio.src = "nextAudio.mp3";
audio.play();
});
答案 2 :(得分:0)
我认为这个答案可以帮助你...
html5 audio player - jquery toggle click play/pause?
因此,您应该使用setTimeout或setInterval,而不是点击,您可以使用它来更频繁地检查.paused==false
我认为您可以通过检查视频来检查是否已完成#39;长度并将其与最大长度进行比较,= =文件结束。