jquery - 使用HTML5播放音频文件

标签 jquery html audio

我在这段代码中有三个音频...在页面完全加载后我想一个接一个地播放它们...以下代码正在发生这种情况,但我似乎无法处理两个音频之间的延迟...我该如何完成?

<audio id="my_audio">
  <source src="bark.mp3" type="audio/mpeg">
</audio>
<audio id="my_audio2">
  <source src="roar.mp3" type="audio/mpeg">
</audio>

<audio id="my_audio3">
  <source src="hoot.mp3" type="audio/mpeg">
</audio>



    <script type="text/javascript">
        $(document).ready(function() {
            $("#my_audio").get(0).play();

            $("#my_audio").bind("ended", function(){ 

                $("#my_audio2").get(0).play();

                $("#my_audio2").bind("ended", function(){ 

                $("#my_audio3").get(0).play();
            });
        });

});

最佳答案

这是一个JSLinted,简洁的Javascript示例,演示了如何处理和使用结尾的https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Media_events。在您的特定情况下,您将触发结束事件处理程序中的第二个音频文件的播放。

http://jsfiddle.net/75lb/jwyMH/

HTML代码

<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>

Juqery代码
// 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);
    }
});

要么

如果这是您的音频标签:
<audio id="player" src="someAudio.mp3"/>

然后向其添加“结束”事件的事件侦听器,就可以更改源并播放下一个声音。
    var audio = document.getElementById("player");
    audio.addEventListener("ended", function() {
setTimeout(function(){
            //HERE IS YOUR CODE DO WHAT YOU WANT
        audio.src = "nextAudio.mp3";
        audio.play();
        },5000)// 5 sec delay before your nrxt function call

    });

关于jquery - 使用HTML5播放音频文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46410664/

相关文章:

javascript - 如何为 PHP 网络表单创建确认页面?

PHP sin函数上去

php - PHP http 流的正确 header 和 mime_type

asp.net - 如何使用 jQuery 从 ASP.NET 服务器控件传递值?

javascript - 如何更改 Google 图表工具提示的字体大小

javascript - 我正在实现搜索,当我在搜索框中不放置任何内容时,这必须保留在同一页面上,java脚本编码是什么

html - 使用 Mustache 在 HTML 中添加 css 类列表

html - 为什么我的表格单元格与其包含的文本高度不同?

audio - 最佳语音压缩算法/格式

javascript - 如何使用 JQueryMobile 1.4RC1 更新弹出选择文本?