我收到报告称我们的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。再次单击播放将开始播放。
任何有关于从哪里出发的想法?
答案 0 :(得分:2)
音频/视频编解码器库实现对于Android中的硬件供应商而言是独一无二的 - 并非所有设备都使用相同的库进行音频/视频解码,因为它们使用不同的硬件用于这些目的。
因此,特别是在旧版Android中,媒体播放不可靠。
我在Viacom工作了六年处理移动视频和音频传输,这是我遇到的最棘手的问题之一,因为没有公平的解决方案,特别是因为你不能强迫人们只有Flash (让我们面对现实,这是一个可怕的解决方案)。
我们花了很多时间与谷歌开发者倡导者讨论这个问题 - 好处是他们改进了后续版本操作系统的验收套件,这意味着3.X和4.X在媒体播放方面具有更好的公司间兼容性
我最喜欢的错误是,如果你的MP4视频文件包含错误对齐的音频和视频曲目(它们在不同的时间开始,符合规范),运行任何2.X系列的摩托罗拉手机将不会播放音频。
所以我想,我的答案是你不能保证在这些设备上可靠播放,你应该检查音频属性,以确保所有文件都是由具有相同属性的相同编解码器和编码器生成的。 / p>
另外,我会检查是否有一些是立体声,一些是单声道,哪些是IDv3标签,哪些没有,等等 - 编解码器真的很挑剔。
这是非常遗憾的,因为这些公司没有动力升级旧设备上的操作系统以及我们陷入移动社区的大量不兼容的硬件声称兼容性因此我们甚至无法测试功能,但是,必须明确地测试设备数据和软件构建ID。