预加载多个音频文件

2024-02-10

我的网页上有一个音频控件。我希望用它来根据页面的状态播放多个非常短的音频文件。我不想在播放文件时加载它们。如何在页面加载时加载所有这些文件?

这是我正在做的事情的粗略想法:

http://jsfiddle.net/L0c9ccx9/20/ http://jsfiddle.net/L0c9ccx9/20/

audio.src = ...;
audio.load();
audio.play();

var audioFiles = [
    "http://www.teanglann.ie/CanC/nua.mp3",
    "http://www.teanglann.ie/CanC/ag.mp3",
    "http://www.teanglann.ie/CanC/dul.mp3",
    "http://www.teanglann.ie/CanC/freisin.mp3"
];
    
function preloadAudio(url) {
    var audio = new Audio();
    // once this file loads, it will call loadedAudio()
    // the file will be kept by the browser as cache
    audio.addEventListener('canplaythrough', loadedAudio, false);
    audio.src = url;
}
    
var loaded = 0;
function loadedAudio() {
    // this will be called every time an audio file is loaded
    // we keep track of the loaded files vs the requested files
    loaded++;
    if (loaded == audioFiles.length){
    	// all have loaded
    	init();
    }
}
    
var player = document.getElementById('player');
function play(index) {
    player.src = audioFiles[index];
    player.play();
}
    
function init() {
    // do your stuff here, audio has been loaded
    // for example, play all files one after the other
    var i = 0;
    // once the player ends, play the next one
    player.onended = function() {
    	i++;
        if (i >= audioFiles.length) {
            // end 
            return;
        }
    	play(i);
    };
    // play the first file
    play(i);
}
    
// we start preloading all the audio files
for (var i in audioFiles) {
    preloadAudio(audioFiles[i]);
}
<audio id="player"></audio>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

预加载多个音频文件 的相关文章

  • 设置overflow-y可见,而overflow-x为auto,以便内容可以垂直溢出父容器

    我在用着position absolute and position relative如果将其父级悬停在图像上 则在图像上显示文本 文本和图像父 div 所在的容器设置为overflow x auto 使其具有水平滚动条 我想要看起来垂直溢
  • Li向左浮动,长度动态:最后一行无边框底部

    情况如下 https jsfiddle net rpepf9xs https jsfiddle net rpepf9xs 我想用选择器 nth last child 删除边框底部 但是 如果列表中只有8个 li 则会出现如下错误 ul di
  • javascript中怪异模式的元素宽度?

    我一直在浏览所有流行的 js 库 但我找不到一个具有 DOM 元素宽度函数的库 该函数实际上可以解释 Internet Explorer 中的怪异模式 问题是 当启用怪异模式时 填充和边框不会计入宽度 据我所知 当省略 doctype 或将
  • :hover 状态在 iOS 上不会结束

    我有一个带有悬停状态的简单菜单
  • 通过 Javascript 将图像切割成碎片

    我正在创建一个简单的拼图游戏 为了做到这一点 我需要将我正在使用的图片切成 20 块 Javascript 有没有办法将一张图片切成 20 个相等的部分 并将它们保存为网页中的 20 个不同的对象 或者我只需要进入 Photoshop 自己
  • 如何在 Java 中使用 HTML 解析器和 Apache Tika 来提取所有 HTML 标签?

    我下载了 tika core 和 tika parser 库 但找不到将 HTML 文档解析为字符串的示例代码 我必须删除网页源的所有 html 标签 我能做些什么 如何使用 Apache Tika 进行编码 您想要 html 文件的纯文本
  • Thymeleaf 下拉菜单中的默认值

    我正在使用 Spring MVC 和 thymeleaf 构建一个 Web 应用程序 我的下拉菜单是这样的并且它按预期工作
  • 使用php表单更改href链接

    我正在制作一个带有搜索栏的网站 我想让搜索栏在 搜索 并显示结果后具有交互性 所以我希望 href 根据正在使用的 Id 进行更改 例如 有人搜索 Pinecones 如果它在数据库中 它将有一个 ID 在本例中是 4 一旦他们搜索它 它就
  • 使用 PHP 获取 2 个同名 HTML 输入标签的值

    假设我有下表
  • 为什么字体扩展仅适用于 PDF,而不适用于其他格式(HTML、XLS、DOC)?

    通过 Jaspersoft Studio 我们使用以下设置将用于 Web 应用程序的内置 Windows Calibri 字体变体导出到字体扩展 JAR 中 导出的jrfontextensions jar内的目录结构如下 jrfontext
  • 一个接一个地淡入div

    大家好 我很擅长 HTML 和 CSS 但才刚刚开始接触 jQuery 的皮毛 我希望让 3 个 div 在页面加载时逐渐淡入 到目前为止我有这个 我听说使用 css 将显示设置为 none 对于任何使用非 JavaScript 浏览器的人
  • 将 div 文本分配给变量然后显示它

    我有一个简单的任务 我试图完成学习 JavaScript 但一直无法找到明确的答案 这是代码 div Testing div 基本上我希望将方框 div 中的文本存储到变量中 然后 我想在页面的不同部分显示该变量的文本 使用上面的代码我得到
  • 每 2 行后使 html 表格的边框变厚

    我创建了一个包含一些内容的表 其中有 12 行和 2 列 我想显示边框 但每 4 行之后 我想将水平边框设置为比正常情况更粗 怎么做 请在这里帮忙 试试这个选择器 table tr nth of type 4n td border bott
  • 链接无效

    我正在尝试使用以下命令创建一组指向页面中特定部分的链接 a href 符号 但它似乎不起作用 点击链接似乎没有任何反应right click gt open in a new tab更改 url 但不会移动到页面的其他部分 我使用的是火狐浏
  • 单击导航项锚链接时如何关闭切换菜单

    请看我的FIDDLE http jsfiddle net ayhpp8ax 我有一个带有 响应式 导航菜单 带有指向页面上元素的锚链接 的 1 页网站 当浏览器视口小于特定宽度 在我的情况下为 767px 时 使用此 javascript
  • VueJS 中数据无法正确显示

    我的 VueJS 代码有一个小问题 在 输出 压缩的 GS1 数字链接 URI 部分中 When there is no result it should have nothing display like this I have remo
  • 为什么我的交互式图像仅在 Internet Explorer 上出现故障?

    我的问题 我为自己制作了一个图像地图 交互式图像 它在 Chrome safari 和 Firefox 上完美运行 然而 当我在可怕的互联网浏览器上尝试它时 它真的很糟糕 这些小点应该扩展到更大的盒子中 在互联网浏览器上它要么不起作用 要么
  • 如何停止TinyMCE删除span标签?

    在我的工作中 前一位程序员决定使用公司网站上精彩的TinyMCE 我遇到的数千个问题之一是 如果原文有的话span标签 当我按下退格键删除一行 p仅标签 全部span标签已从文本中删除 这个错误比另一个错误更具体 我可以删除anything
  • 从 PHP 数组生成 HTML 表

    我不明白这一点 我需要解决看似简单的问题 但这超出了我的逻辑 我需要编写一个函数 table columns input cols 它将输出一个表 示例 input array apple orange monkey potato chee
  • 禁用允许文本选择的

    残疾人可以吗

随机推荐

  • MVC2 <%: 标签与 <%= 有何不同

    区别在于 在 MVC2 出现之前 为了对字符串进行 HTML 编码 您必须在视图中使用 Html Encode 方法 然而 在 MVC2 中 他们添加了 根据经验 你应该always使用 查看顾斯科特的博客 http weblogs asp
  • 获取控件相对于整个屏幕的位置?

    假设我有一个 Control 它的位置是相对于它的父级的 如果它嵌入了很多次并且是主窗体的曾曾孙 我如何确定它在整个屏幕上的位置 而不仅仅是它在直接父窗体中的位置 这是为了通过屏幕截图打印特定控件 因为对于某些控件 DrawToBitmap
  • Apple 配置不再适用于 Visual Studio 2022 17.2

    我打算在 Visual Studio 2022 中下载更新的 Apple 开发人员证书和配置文件 新的证书和配置文件位于 Apple 开发者网站中 钥匙串和 Xcode 包含证书 在黄金岁月里 有自动配置在视觉工作室中 苹果决定不再支持这一
  • 使用 EWS 和 OAuth 2 的 Office 365 日历 API

    请参阅底部的编辑 我正在尝试使用 EWS 不是托管 API 使用 Office 365 API 在用户日历上创建 删除 更新事件 到目前为止 我已成功使用基本身份验证来验证我的 SOAP 请求是否有效 我现在尝试用 OAuth 2 替换 B
  • 将根元素添加到 json 响应 (django-rest-framework)

    我正在尝试确定使用 django 和 django rest framework 将根元素添加到所有 json 响应的最佳方法 我认为添加自定义渲染器是实现我想要实现的目标的最佳方法 这就是我到目前为止所想到的 from rest fram
  • 带有颜色选择器编辑器的 JavaFX 表格视图

    我有一个 TableView 它使用 ColorPicker 来 显示 编辑 单元格中的颜色 该表在所需字段中显示 ColorPicker 但编辑不起作用 TableColumn
  • Tag-it onlyAvalaibleTags 选项不起作用

    我使用 tag it 插件https github com aehlke tag it downloads https github com aehlke tag it downloads 如何禁用添加新标签 document ready
  • 使用 NestJS 和 Fastify 时多部分表单数据正文为空

    我们正在迁移自express to fastify in our nestJS应用 这multipart form data后置控制器中支持的 json 正文而不是文件 在迁移后不起作用 我们有typeorm swagger也已插入 如有任
  • 无法在 Visual Studio 2015 中运行 WCF 服务应用程序

    我正在尝试创建我的第一个 WCF 服务应用程序 但无法让它从 Visual Studio 2015 运行 这是我点击运行时出现的错误 我正在遵循教程 我认为他们跳过了一些步骤 但这是我添加到 web config 中的内容
  • InlineUIContainer 问题中的 WPF XAML 按钮单击处理程序

    我有一个 FlowDocument 其中包含一些如下元素
  • WndProc 没有可见的形式?

    我想在第二个线程上创建一个表单 该线程将在其 WndProc 方法中接收消息 创建这样的隐形表单的推荐方法是什么 设置 ShowInTaskbar false 和 Visible false 是否足够 或者是否有 更干净 的方法 我不确定你
  • 鼠标滚轮事件 (C#)

    我无法在主窗体中获取鼠标滚轮事件 作为演示 我想出了一个简单的例子 public partial class Form1 Form public Form1 InitializeComponent this panel1 MouseWhee
  • 使用不同的损失函数恢复训练

    我想实施一个两步学习过程 使用损失函数预训练几个时期的模型loss 1 将损失函数更改为loss 2并继续进行微调训练 目前 我的做法是 model compile optimizer opt loss loss 1 metrics acc
  • 打瞌睡模式处理

    我正在开发一个应用程序 它使用 AlarmManager 在后台生成一些服务 时机对于我们的应用程序非常重要 并且功能不能等待下一个维护窗口的发生 要求用户将应用程序列入白名单不是问题 但不能解决暂停警报的问题 此外 电池消耗也不是一个大问
  • 有没有办法将 Facebook Presto 0.131 与 Cassandra 3.0.0 一起使用?

    使用 Presto 0 131 查询 Cassandra 3 0 0 集群时 我得到 所有尝试查询的主机均失败 snip InvalidQueryException 未配置的表 schema keyspaces 我认为这是由于 Cassan
  • 在 sqlalchemy 中使用 postgresql JSON 类型的列表

    我正在使用金字塔与 sqlalchemy pyramid tm 和 postgresql 来测试这一点 DBSession scoped session sessionmaker extension ZopeTransactionExten
  • XSLT 3.0 流式传输(撒克逊)

    我有一个很大的 XML 文件 6 GB 其中包含这种树
  • 如何在 MAC OSX 中拆分 sql?

    有没有适用于Mac的应用程序可以分割sql文件甚至脚本 我有一个大文件 必须将其上传到不支持超过 8 MB 的文件的主机 我没有 SSH 访问权限 你可以使用这个 http www ozerov de bigdump http www oz
  • 更改查询字符串中的单个变量值[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我得到了一
  • 预加载多个音频文件

    我的网页上有一个音频控件 我希望用它来根据页面的状态播放多个非常短的音频文件 我不想在播放文件时加载它们 如何在页面加载时加载所有这些文件 这是我正在做的事情的粗略想法 http jsfiddle net L0c9ccx9 20 http