HTML5音频标签在安卓设备上无法正常工作。

9

我已经为Android ICS创建了一个示例PhoneGap应用程序。 index.html中有一个音频标签,如下所示。

<audio id="player1" controls preload><source src="media/track1.mp3" type="audio/mp3" /></audio>

我无法播放音频。我在各处看到了堆栈溢出的帖子,提到froyo发布后音频标签将正常工作。但是,我在gingerbeard和ICS中进行测试时发现它在任何地方都无法正常工作。


在这里查看浏览器支持情况:http://html5test.com/compare/browser/android40.html - Søren Lorentzen
@NicholasAlbion:HTC Wildfires和HTC One V。浏览器是默认的安卓浏览器。 - karthick
请注意,HTC手机(也许所有的Android手机)上的默认浏览器不是Chrome。Chrome支持PCM、AAC、Ogg和WebM格式,而默认浏览器则不支持。 - Nicholas Albion
@NicholasAlbion:好的。抱歉,我忘了提到我正在使用一个webview来查看HTML。 - karthick
5个回答

8

由于编解码器许可问题和操作系统的实现/支持不一致,HTML5音频在不同设备/操作系统上的支持并不一致。如果您只是播放MP3文件,可以使用PhoneGap的Media类来可靠地处理这些文件,该类将在所有平台上提供一致且可靠的音频编程。

如果您想要预加载音频并具有更高级的场景,例如多声部或分层(例如视频游戏效果),则可以使用LowLatencyAudio PhoneGap本机插件。


6

虽然来得有点晚,但是type="audio/mp3"是错误的,应该是type="audio/mpeg"

话虽如此,Android在播放HTML5音频方面仍然很糟糕 - 您需要在播放声音之前重置src属性(否则它们只会播放一次),并且不支持多种文件类型(其他浏览器所需)。他们也不支持WebAudioAPI。


2
根据 html5test.com,Android 4 只支持音频标签中的 mp3 格式。

你可以尝试完整使用“controls”属性:controls="controls" - roncsak
你正在播放的mp3文件是在Android SD卡中还是托管在其他地方? - roncsak
那么引用这些文件可能是错误的。在这里阅读更多信息:https://dev59.com/v3M_5IYBdhLWcg3w1G2N - roncsak

2
希望我能早点回答您的问题。以下方法对我有效。Android 对音频源的顺序非常挑剔所以我将 "mp3" 在第三行向上移动以确保它能正常工作。controls=controls 的原因是在没有这个属性时 IE 11 在普通电脑上看起来无法工作。我的想法是必须为 Firefox 进行 ogg 格式的转换才能被识别。
<audio controls="controls">
<source src="/somefile.mp3" type="audio/mpeg"></source>
<source src="/somefile.ogg" type="audio/ogg">   
Your browser does not support the audio element.
</source></audio>

嗨@moises, 以上代码存在问题。 对我来说,它会报错:<source src="audios/Ganna/songs.mp3" type="audio/mpeg">[ERROR ->]</source> 应该像这样: - S.Yadav
只需将</source>从最后删除即可。 - S.Yadav

0

看起来你的mp3路径不正确。如果这个文件在SD卡上,路径应该是这样的:

file:///sdcard/media/track1.mp3

但我正在使用HTML标签。这样会起作用吗?<audio id="player1" controls preload><source src="file:///sdcard/media/track1.mp3" type="audio/mp3" /></audio> - karthick
@karthick 试一下。如果音频文件在SD卡上,你目前给出的音频标签路径是行不通的。这一点我可以确定。 - Simon MacDonald

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接