我想知道Android设备中音频编解码器的支持是什么。
在这里,我发现2.3和4.0仅支持mp3编解码器:
http://html5test.com/compare/browser/android23/android40/android22.html
虽然我在Galaxy S上测试了android 2.3,但我发现它也会播放ogg vorbis格式。
与4.x手机相同。
这是我完成的测试http://twigit.pl/trash/test_mac.html
哪里可以找到有关音频编解码器移动支持的可靠资源?
非常感谢你。
答案 0 :(得分:1)
这是Android支持的媒体格式的官方列表:
http://developer.android.com/guide/appendix/media-formats.html
表1显示所有Android版本均支持Vorbis解码器。
尽管如此,媒体编解码器并不能保证在所有Android平台版本和所有Android设备上都可用。即,一些OEM可以在不支持某些特定代码(Vorbis或任何其他代码)的情况下构建自己的Android ROM。
这称为平台碎片。
答案 1 :(得分:1)
这是一个很好的问题,bluesm
。您完全正确地指出Sergey K
对ogg / vorbis的平台支持与浏览器支持不同。您正在寻找的是支持HTML5规范定义的音频和视频标签支持,以及特定于各种媒体格式的解码器的实现。
根据此页面http://hpr.dogphilosophy.net/test/
Android浏览器:所有版本的Android都内置了Ogg Vorbis 音频支持,但未添加对HTML5标记的支持 直到“Gingerbread”发布(Android 2.3)。出于某些奇怪的原因, Android浏览器报告它不支持WebM Audio,但它 实际上。
但是,默认浏览器可能不会正式支持ogg格式,并且各种javascript检测策略可能会报告浏览器不支持它。但是,我刚刚使用手机上的默认浏览器在该网站上进行了测试,这是一款Android 2.3.7设备(下面的规格)。 ogg格式DID播放!!
我认为您为html5test.com发布的链接通常是一个很好的参考,但在这种情况下似乎是错误的。当然,这将取决于基于ROM的ROM上确切安装的默认版本。但在我的有限测试中,Android 2.3 Gingerbread DOES中的默认浏览器支持ogg / vorbis。
html5test报告浏览器不支持ogg的原因可能与不完整的javascript检测有关。 HTML5音频元素支持canPlayType
功能。您可以将mime类型传递给它,以确定浏览器是否可能播放特定格式。
var canPlayOga = audioElement.canPlayType('audio/ogg');
var canPlayAppOgg = audioElement.canPlayType('application/ogg');
在默认浏览器中(至少是我使用的浏览器), application / ogg 返回“是”, audio / ogg 返回“否”。因此,即使浏览器CAN播放ogg文件,如果仅检查 audio / ogg ,它也会报告它不能。
为了澄清这一点,我应该指出 application / ogg 是一种mime类型, audio / ogg 也是如此。浏览器使用此信息来了解特定文件的格式。如果没有此信息,浏览器可以使用与文件扩展名关联的默认mime类型。如您所知,<source>
标记内的<audio>
标记可以包含type
属性,其中mime类型为音频格式,作为浏览器的提示:
<audio>
<source src="horse.ogg" type="audio/ogg">
<source src="horse.mp3" type="audio/mpeg">
</audio>
我的测试证明,浏览器可能无法使用 audio / ogg 类型分配进行播放,但是 application / ogg 类型会如此:
<audio>
<source src="horse.ogg" type="application/ogg">
</audio>
读者可以在这里尝试自己的设备,并留下关于哪些工作和哪些不工作的评论:http://hpr.dogphilosophy.net/test/