【问题标题】:What are the limitations of HTML5 audio on Android and iOS?HTML5 音频在 Android 和 iOS 上的限制是什么?
【发布时间】:2013-09-07 08:33:13
【问题描述】:

我注意到对于 HTML5 音频元素,适用于最新版 PC 版 Chrome 的内容不一定适用于 Android 的默认浏览器、Android 版 Chrome 或 iOS 版 Safari。

这些平台上的音频存在哪些限制?

具体来说:

  • 每个平台都支持哪些音频格式?
  • 对于每个平台,是否需要用户交互事件(例如 onclick)才能从 javascript 播放音频? (通过new Audio(url);
  • 能否从 Android 和 iOS 音频元素上的数据 URI 播放音频?
  • 这些平台上的 HTML5 音频是否还有其他主要限制(或错误)?

【问题讨论】:

  • 显然,你没有用谷歌搜索这个,但你至少搜索过它吗? scirra.com/blog/44/on-html5-audio-formats-aac-and-ogg
  • 实际上,我两者都做了。所有消息来源似乎都假设 iOS 上的 Safari 与桌面上的 Safari 相同。情况似乎并非如此。 Chrome 也是如此。您提供的链接未提及 iOS 或 Android。这个问题专门针对这些平台。
  • 目前,我们在Android和iOS上使用.aac格式的html5音频,主要在中国的微信应用程序中,它适用于iOS和大多数中国品牌的android手机。

标签: android ios html html5-audio


【解决方案1】:

总结

MP3 似乎是覆盖广泛平台的最佳选择。所有主要桌面和移动浏览器的最新版本都支持它。 (iOS 上的 Safari 和 Android 上的 Chrome)

目前,通过 DataURI 播放主要限于桌面浏览器,但很快就会在 Android 中可用。

Android(默认浏览器)

格式

  • Ogg Vorbis:是的
  • MP3:是的
  • FLAC:否(不是 100% 确定)

数据 URIs

是的

允许自动播放

待定

需要用户交互事件

待定

限制

  • 似乎无法播放完整的音频。 (用短音测试)

Android (Chrome)

格式

  • Ogg Vorbis:是的
  • MP3:是的
  • FLAC: 是的

数据 URIs

是的 (bug fixed in Chrome 34, which is currently in beta)

允许自动播放

没有 (bug)

需要用户交互事件

是的

限制

  • “结束”事件永远不会触发。 (bug)
  • “结束”事件没有用户交互权限,因此无法链接音频。 (bug)

iOS

格式

  • Ogg Vorbis:没有
  • MP3:是的
  • FLAC:没有

数据 URIs

否(workaround for iOS 6;对于 iOS 6+ 没有已知的解决方法)

允许自动播放

待定

需要用户交互事件

待定

限制

待定


使用http://hpr.dogphilosophy.net/test/执行的格式测试

【讨论】:

  • TBC 是什么意思?
  • @maracuja-juice “待确认”我猜。
【解决方案2】:

每个平台都支持哪些音频格式?

iOS:AAC 音频、MP3 音频、AIF 音频、WAVE 音频

iOS(包括 iPad)上的 Safari 目前支持未压缩的 WAV 和 AIF 音频、MP3 音频以及 AAC-LC 或 HE-AAC 音频。 HE-AAC 是首选格式。

iOS 上的 Safari(包括 iPad)目前支持 MPEG-4 视频(基线配置文件)和使用 H.264 视频(基线配置文件)和一种受支持的音频类型编码的 QuickTime 电影。

iPad 和 iPhone 3G 及更高版本支持 H.264 Baseline profile 3.1。早期版本的 iPhone 支持 H.264 Baseline profile 3.0。

链接:

https://developer.apple.com/library/safari/documentation/AudioVideo/Conceptual/Using_HTML5_Audio_Video/Device-SpecificConsiderations/Device-SpecificConsiderations.html#//apple_ref/doc/uid/TP40009523-CH5-SW1

安卓:MP3

链接:

http://html5test.com/compare/browser/android23/android40/android22.html

您可以点击此链接测试支持的音频格式

http://hpr.dogphilosophy.net/test/

对于每个平台,是否需要用户交互事件(例如 onclick)才能从 javascript 播放音频?

不,它也可以自动播放。

http://www.w3schools.com/tags/att_video_autoplay.asp

能否从 Android 和 iOS 音频元素上的数据 URI 播放音频?

这里是解释使用数据 URI 播放音频的概率的链接

Is it possible to use data URIs in video and audio tags?

HTML5 音频在这些平台上是否还有其他主要限制?

这里是解释 linitations 的链接

http://www.ibm.com/developerworks/library/wa-ioshtml5/

http://blog.chenalexander.com/2011/limitations-of-layering-html5-audio/

【讨论】:

  • iOS 的最大限制是无法自动播放或以编程方式播放音频。我的公司为 PC 构建了一个 web 应用程序,它轮询服务以获取通知并在有通知时播放警报声音。当他们想将其转换为 iOS 时,我们必须构建一个 phonegap shell 并调用 phonegap 方法来播放音频,而不是使用 HTML5 音频。
  • 较新的 Android 版本绝对可以播放的不仅仅是 MP3。我的安卓手机可以播放hpr.dogphilosophy.net/test的多种格式
  • 我不确定这对 Android 有多真实。我古老的 Android 1.5 操作系统可以播放 Ogg 文件(但不能播放 MP3)。
【解决方案3】:
  • 每个平台都支持哪些音频格式?

Android
IOS

  • 能否从 Android 上的数据 URI 播放音频

您可以使用MediaPlayer 完成此操作。也可以refer herehere 了解更多信息。
使用phonegap 和cordova 你can play and record audio

  • HTML5 音频在这些平台上是否还有其他主要限制?

Refer here

P.S. 这篇文章更侧重于 Android。

【讨论】:

  • MediaPlayer 似乎适用于本机应用程序。我对数据 URI 是否可以在 Android 和 iOS 上与 HTML5 音频一起使用特别感兴趣。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-30
  • 1970-01-01
相关资源
最近更新 更多