【问题标题】:Replace HTML5 audio with Web Audio API用 Web Audio API 替换 HTML5 音频
【发布时间】:2014-04-15 02:11:40
【问题描述】:

移动设备上的 HTML5 音频有很多限制,实际上我称之为错误。

我的应用实现了类似音频播放器的功能。

实际上,它适用于桌面版,但在移动版中我遇到了许多错误,并且必须针对不同的浏览器和操作系统采取许多不同的解决方法才能使其正常工作,但仍然很糟糕。

我没有深入研究网络音频 api,但它似乎是为稍微不同的任务而设计的。

所以我的问题是,如果我只需要加载文件并播放它们(部分是精灵)以避免限制和错误,那么用 Web Audio API 替换 HTML5 音频是否有意义(是否可能?) HTML5 音频?

【问题讨论】:

  • 它们遭受完全相同的实现错误和限制。否则,您将不得不更加具体。当然,您可以改用其中一种 JavaScript 实现的编解码器,但我不确定这就是您的意思。
  • 我希望能够加载多个音频文件并播放它们(一次一个)。这个简单任务的事件移动 HTML5 音频很糟糕。
  • 这是目前的状态。
  • 查看库 github.com/vjai/musquito,它有助于更​​轻松地播放带有 html5 音频或网络音频的声音。

标签: html5-audio web-audio-api


【解决方案1】:

我推荐我开发的SoundJS,它消除了在多个设备上支持音频的痛苦。基本上,它可以让你编写一个可以在任何地方工作的单一代码库,并且已经可以处理边缘情况。

在移动设备上实现 HTML Audio 元素真的很糟糕,所以如果不是 SoundJS,我至少建议切换到 Web Audio,它在 iOS 和 Android Chrome 上运行良好,但在 Android Native 浏览器中不受支持。

idbehold 的评论是准确的,移动设备最常见的问题是必须在用户发起的事件(触摸)内播放音频。我已经为这个问题开发了一个解决方案,分享在Mobile Safe Approach tutorial

希望对您有所帮助。

【讨论】:

    【解决方案2】:

    实际上,我不同意 - 如果您的目标是播放简短的 sn-ps 声音,尤其是同时播放 - 例如,为平台跳线游戏提供声音 - 网络音频将更容易使用,包括移动的。管理多个文件/实例时遇到问题。另一方面,如果您遇到的问题是由于解码问题,或者您使用的主要是长文件,那么正如 Kevin 和 Brad 所说,这将无济于事。

    【讨论】:

    • 完全同意。对于这些类型的任务,Web Audio 确实是唯一的出路。我只是根据上面的评论来回答:“我只想能够加载几个音频文件并播放它们(一次一个)。”
    【解决方案3】:

    我认为您可能会在移动设备上找到与使用 <audio> 元素所看到的一样多的错误或边缘情况。另外,移动平台上对网络音频的支持不是很好。如果是我,我会倾向于坚持使用<audio>,除非您有一个只能通过 Web Audio API 解决的特定用例。

    【讨论】:

    • 同样重要的是要记住,Web Audio API 无法解决人们在移动浏览器上遇到的最常见的音频问题:尝试在没有用户直接物理交互的情况下播放音频。跨度>
    • 我不同意,总的来说,我发现
    • 我从这个问题中得到的印象,尤其是评论“我只想能够加载几个音频文件并播放它们(一次一个)”,这正是 OP 想要的做。
    • 现在我选择坚持使用
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-18
    相关资源
    最近更新 更多