我是 Javascript 爱好者。我需要制作一个用于移动查看的网页,以部署一个动态创建但最终是线性的音频片段。基本上我需要加载一个播放列表,其中一些轨道是固定的,但其他轨道是从更大的池中随机选择的;某些轨道之间还需要定时暂停。它只需要最少的控制,可能只是播放/暂停。
我正在研究 Web Audio API 和基本的 HTML5 <audio>
标签。我在它们之间选择的两个主要问题是兼容性 和 使用简单 .
在 兼容性 点,我看到 on the main page for the API itself它没有列出对 Android 的支持,但在 this more detailed rundown 上几乎所有浏览器都被列为绿色。什么是最好的信任来源?
假设 Web Audio API 对于移动部署是可行的,我需要使用它吗?它会让我的生活更轻松还是只是为了我的目的而被压倒了?我看到它有一个方便的onended
我看到自己用于排队和精确计时功能的事件处理程序。在成功时使用回调函数异步加载文件似乎也更明确 - 我想要一个加载屏幕,这样会很有用。
我对 <audio>
的功能不太清楚.我想它必须能够做我想做的一切,因为在 Web Audio API 出现之前已经构建了 HTML5 播放器 - 但它更繁琐吗?
最佳答案
网络音频在移动设备上运行良好。
网络音频,对比 <audio>
, 分解并让开发人员精确控制音频的加载、解码和播放。如果您需要音频的精确计时(例如节拍同步),您可能应该使用网络音频。 <audio>
很不精确。
也就是说,有几点需要注意——因为 Web Audio 默认使用内存缓冲区,它可以使用比 <audio>
更多的内存。 ,并且它没有本地组件来执行流式音频。 onended 事件不是进行真正的音频链接的正确方法,因为它是一个主线程 Javascript 回调(也就是说,任何像这样的事件处理都可能被其他 JS、垃圾收集等延迟 - 而且它可能会关闭 50 或 100 毫秒)。如果您真的关心时间安排,则必须提前计划并使用 Web Audio 调度。 (This article 我写的更详细地描述了这一点。)
关于javascript - 用于复杂播放列表的 Web Audio API 或 <audio>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49573172/