HTML5音频在Android和iOS上有哪些限制?

10

我注意到HTML5音频元素,在最新版本的Chrome for PCs上能够正常工作,但在Android的默认浏览器、Chrome for Android或iOS上的Safari上不一定能够正常工作。

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

具体而言:

  • 每个平台支持哪些音频格式?
  • 对于每个平台,是否需要用户交互事件(例如点击)才能从JavaScript播放音频?(通过new Audio(url);
  • 在Android和iOS音频元素上,是否可以从数据URI播放音频?
  • 这些平台上HTML5音频还存在其他重大限制(或错误)吗?

显然,你没有谷歌过这个问题,但你至少在 Stack Overflow 上搜索了吗?https://www.scirra.com/blog/44/on-html5-audio-formats-aac-and-ogg - Jacques ジャック
实际上,我两个都试过了。所有的来源似乎都认为iOS上的Safari与桌面上的Safari是相同的,但事实并非如此。Chrome也是如此。你提供的链接没有提到iOS或Android。这个问题是关于这些平台特别的。 - James
目前,我们在Android和iOS上使用.aac格式的HTML5音频,主要在中国的微信应用程序中使用,它适用于iOS和大多数中国品牌的Android手机。 - jiguang
3个回答

5

摘要

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

目前,通过DataURI进行播放仅限于桌面浏览器,但很快将在Android中可用。

Android(默认浏览器)

格式

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

Data URIs

允许自动播放

TBC

需要用户交互事件

TBC

限制

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

Android(Chrome)

格式

  • Ogg Vorbis:
  • MP3:
  • FLAC:

Data URIs

是(在Chrome 34中已修复的bug, 目前是beta版本

允许自动播放

否(bug

需要用户交互事件

限制

  • “ended”事件永远不会触发。(bug
  • “ended”事件没有用户交互权限,因此音频无法链式播放。(bug

iOS

格式

  • Ogg Vorbis:
  • MP3:
  • FLAC:

Data URIs

否(在iOS 6上有解决方法;iOS 6+没有已知的解决方法)

允许自动播放

TBC

需要用户交互事件

TBC

限制

TBC


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


2
TBC是什么意思? - maracuja-juice
@maracuja-juice “待确认” 我猜。 - Rodrigo

4

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

iOS:AAC音频,MP3音频,AIF音频,WAVE音频。

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

iOS上的Safari(包括iPad)目前支持使用H.264视频编码(基本配置文件)和支持的某种音频类型的MPEG-4视频和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的Audio元素上,能否播放来自数据URI的音频?

这是一个解释使用数据URI播放音频的链接

是否可以在视频和音频标签中使用数据URI?

在这些平台上,HTML5 Audio还有其他主要限制吗?

这是一个解释限制的链接

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

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


3
iOS 的一个重要限制是无法自动播放或以编程方式播放音频。我们的公司建立了一个网页应用程序,用于 PC 上轮询服务以获取通知,并在有通知时播放警报声。当他们想将其转换为 iOS 时,我们不得不构建一个 PhoneGap 外壳并调用一个 PhoneGap 方法来播放音频,而不能使用 HTML5 音频。 - xdumaine
新版本的安卓系统绝对可以播放不止MP3格式的音频。我的安卓手机可以播放来自http://hpr.dogphilosophy.net/test/的多种格式。 - James
我不确定这对Android是否适用。我的古老的Android 1.5操作系统可以播放Ogg文件(但不能播放MP3文件)。 - ashes999

0
以下是与编程有关的内容:
  • 每个平台支持哪些音频格式?

Android
iOS

  • 可以在安卓上从数据 URI 播放音频吗?

您可以使用MediaPlayer来完成此操作。另外,在这里在这里可以获得其他信息。
使用 Phonegap 和 Cordova,您可以 播放和录制音频

这些平台上HTML5音频还有其他主要限制吗? 请参考此处 附注:本帖更侧重于Android。

1
MediaPlayer似乎是为本地应用程序设计的。我特别想知道数据URI是否可以在Android和iOS上与HTML5音频一起使用。 - James

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接