javascript - 在javascript中播放音频文件

标签 javascript jquery jquery-mobile audio callback

我有很多小音频文件,我想一个接一个地播放这些文件,而不是同时播放所有文件。我在 javascript 中使用了 Audio 对象,如下所示

var audio_1 = new Audio();
var audio_2 = new Audio();
var audio_3 = new Audio();

audio_1.src = "/path1";
audio_2.src = "/path2";
audio_3.src = "/path3";

现在我只需要为每个对象调用函数play,但我需要单独播放audio_1,并在以下情况下播放audio_2:第一期结束了。

我找到的解决方案是测试每个对象的属性ending

 audio_1.ended; // returns true when it ends playing

我在音频对象中发现了一个对象onend,我以为它是一个函数,但事实并非如此,有人可以帮助我并给我解决这个问题的最佳方法吗?

最佳答案

使用 addEventListener 而不是将函数分配给 onend 属性:

audio.addEventListener('ended', function() {}); // Do
audio.onended = function() {}; // Don't

所以,恕我直言,肮脏的方式是这样的:

audio_1.play();
audio_1.addEventListener('ended', function() {
    audio_2.play();
    audio_2.addEventListener('ended', function() {
        audio_3.play();
    };
};

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

相关文章:

javascript - 在不推荐使用 'Escape' 调用的情况下在 JavaScript 中转换为 Base64

javascript - Safari:window.showModalDialog 使所有按键加倍(Safari for Windows)

jquery - jsTree 将子节点从一棵树移动到另一棵树

javascript - 在 jQuery Mobile 的数据角色 ="header"上禁用页面转换

javascript - 在 JQM 数据角色 ='page' onload 上加载 JavaScript

jquery - JQuery Mobile header 中的自定义图标

javascript - 在 jquery 脚本中使用变量

javascript - lessc 使用 Ruby 而不是 Javascript

javascript - 无法在 div 中加载内容

javascript - Jquery masonry 和基础 5