2

我收到报告称我们的 MediaElement.js 音频播放器无法在一部特定的 Android 手机上运行。 编辑:有些 mp3 文件有效,有些则无效。mp3 文件都是 Mono 128kbs CBR,没有 ID3 标签。

我们只有一个音频源,一个 mp3,具有所有默认选项。

html是:

<audio src ="/path/to/a/file.mp3" type='audio/mp3'>

手机是运行 2.3.4 的 HTC Incredible 2,在默认浏览器中。相同的页面适用于我用于测试的 2.3.4 设备,以及适用于 2.3.3 的 android 模拟器(无 Flash)。

根据用户的说法,播放器加载正确,并且看起来正确,但是,无论音频文件的实际长度如何,长度都显示为 1:40:00。经常第二次单击播放将开始播放。

有人对从这里去哪里有想法吗?

4

1 回答 1

2

音频/视频编解码器库的实现对于 Android 中的硬件供应商来说是独一无二的——并非所有设备都使用相同的库进行音频/视频解码,因为它们使用不同的硬件来实现这些目的。

因此,尤其是在旧版本的 Android 中,媒体播放不可靠。

我在维亚康姆工作了六年,处理移动视频和音频传输,这是我遇到过的最棘手的问题之一,因为这个问题没有公平的解决方案,特别是因为你不能强迫人们只使用 Flash(其中,面对现实吧,这是一个可怕的解决方案)。

我们花了很多时间与 Google 开发人员倡导者讨论这个问题——好处是他们为更高版本的操作系统改进了验收套件,这意味着 3.X 和 4.X 在媒体播放方面具有更好的公司间兼容性。

我最喜欢的错误是,如果您的 MP4 视频文件的音频和视频轨道未对齐(它们在不同的时间开始,符合规范),运行任何 2.X 系列的摩托罗拉手机将根本不播放音频.

所以我想,我的回答是你不能保证在这些设备上可靠播放,你应该检查音频属性以确保所有文件都是由具有相同属性的相同编解码器和编码器生成的。

另外我会检查一些是立体声的,一些是单声道的,哪些有 IDv3 标签,哪些没有,等等——编解码器真的很挑剔。

很遗憾,因为这些公司没有动力在他们的旧设备上升级操作系统,而且我们被困在移动社区中,拥有大量声称兼容的不兼容硬件,因此我们甚至无法测试功能,而是, ,不仅必须明确测试设备数据,还必须明确测试软件构建 ID。

于 2012-10-09T14:51:26.030 回答