Audio Ogg Vorbis android 默认浏览器
Posted
技术标签:
【中文标题】Audio Ogg Vorbis android 默认浏览器【英文标题】:Audio Ogg Vorbis android default browser 【发布时间】:2013-03-01 09:55:33 【问题描述】:我想知道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
我在哪里可以找到有关音频编解码器的移动支持的可靠资源?
非常感谢您。
【问题讨论】:
【参考方案1】:这是 Android 中支持的媒体格式的官方列表:
http://developer.android.com/guide/appendix/media-formats.html
表 1 显示所有 Android 版本都支持 Vorbis 解码器。
尽管如此,媒体编解码器并不保证在所有 Android 平台版本和所有 Android 设备上都可用。即,一些 OEM 可以在不支持某些特定代码(Vorbis 或任何其他代码)的情况下构建自己的 Android ROM。
这称为平台碎片化。
【讨论】:
但是原生应用程序是否支持 Vorbis Ogg 文件 = 浏览器支持这种音频格式? 在本机应用程序中,您可以直接将 ligogg/libvorbis 与 Android NDK 一起使用。是的,它会起作用的。 但是我问过Android是否支持特定的音频格式,默认浏览器是否也支持这种格式? ~ 你可以在操作系统上内置支持 Mp3,但无论如何你可以构建不支持它的浏览器。 我不问安卓NDK,我问安卓平台的浏览器。 即使在 2.3 浏览器中,仅当使用application/ogg
mime 类型发送 ogg 文件时才会被接受。 audio/ogg
mime 类型实际上可能是更合适的类型,但浏览器不接受它(即使有平台支持。)【参考方案2】:
这是一个很好的问题,bluesm
。您向Sergey K
指出,对 ogg/vorbis 的平台支持与浏览器支持不同,这绝对是正确的。您正在寻找的是对 HTML5 规范定义的音频和视频标签支持的支持,以及针对各种媒体格式的解码器的实现。
据此页面http://hpr.dogphilosophy.net/test/
Android 浏览器:所有版本的 Android 都内置了 Ogg Vorbis 音频支持,但未添加对 HTML5 标签的支持 直到“姜饼”版本(Android 2.3)。出于某种奇怪的原因, Android浏览器报告它不支持WebM Audio,但它 确实如此。
但是,默认浏览器可能不正式支持ogg格式,各种javascript检测策略可能会报告浏览器不支持。但是,我刚刚使用手机上的默认浏览器在该站点上进行了测试,该浏览器是 Android 2.3.7 设备(规格如下)。 ogg 格式确实播放了!!
我认为您为 html5test.com 发布的链接通常是一个很好的参考,但在这种情况下,它似乎是错误的。当然,这将取决于在 ROM 基础上安装的默认版本。但在我有限的测试中,Android 2.3 Gingerbread 中的默认浏览器确实支持 ogg/vorbis。
html5test 报告浏览器不支持 ogg 的原因可能与 javascript 检测不完整有关。 HTML5 音频元素支持canPlayType
函数。您可以向它传递一个 mime 类型,以确定浏览器是否可能能够播放特定格式。
var canPlayOga = audioElement.canPlayType('audio/ogg');
var canPlayAppOgg = audioElement.canPlayType('application/ogg');
在默认浏览器(至少我正在使用的浏览器)中,application/ogg 会返回“Yes”,audio/ogg 会返回“No”。因此,即使浏览器可以播放 ogg 文件,它也会报告它不能,如果只检查 audio/ogg。
为了澄清这一点,我应该指出 application/ogg 是一种 mime 类型,audio/ogg 也是如此。浏览器使用此信息来了解特定文件的格式。在没有此信息的情况下,浏览器可以使用与文件扩展名关联的默认 mime 类型。您可能知道,<audio>
标记内的<source>
标记可以包含带有音频格式的 mime 类型的 type
属性作为对浏览器的提示:
<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>
读者可以在这里尝试他们自己的设备,并让 cmets 知道哪些有效,哪些无效:http://hpr.dogphilosophy.net/test/
【讨论】:
Ogg 格式在 Android v2.3.7 (CyanogenMod-7.2.0) 上使用 Browser v2.3.7 成功播放。电话:Droid X2。 报“是”的“application/ogg”是什么意思? 我在回答中澄清了这一点。感谢您的提问。以上是关于Audio Ogg Vorbis android 默认浏览器的主要内容,如果未能解决你的问题,请参考以下文章
使用 Ogg Flac 和 Vorbis 在 Fedora 中构建 libsndfile
目标 c - 将 mpmediaitem 转换为 ogg vorbis