音频Ogg Vorbis android默认浏览器

时间:2013-03-13 12:45:50

标签: html5 html5-audio ogg vorbis

我想知道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

哪里可以找到有关音频编解码器移动支持的可靠资源?

非常感谢你。

2 个答案:

答案 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/

相关问题