在Android浏览器中播放html5音频

我有一个使用html5 标签在浏览器中播放音频的javascript。 它在iPhone浏览器中运行良好,但在Android中不行。 (使用Android 2.1的htc欲望测试。)任何人都知道为什么?

我的代码:

  function playHTML5(sound, soundcv){ // sound = url to m4a audio file // soundcv = div in which the audioplayer should go var audio = document.createElement('audio'); audio.src = sound; audio.controls = "controls"; if (currentSound != null){ soundcv.replaceChild(audio,currentSound); } else { soundcv.appendChild(audio); } currentSound = audio; } 

顺便说一句,我也试图放大显示在iphone中的音频按钮(默认的一个很小),到目前为止没有运气 – 会对任何想法感激不尽!

Related of "在Android浏览器中播放html5音频"

FroYo中的最新Android浏览器尚不支持HTML5音频元素。 这不是一个错误,而是一个尚未实现的function。 它可能来自姜饼。

更新:Gingerbread浏览器具有音频元素。

这是链接到谷歌Android的错误,该错误导致Android中缺少对AUDIO标签的支持。 请投票。

http://code.google.com/p/android/issues/detail?id=10546

顺便说一下,有一些解决方法可以让你在Android 1.6 .. 2.2中原生播放MP3,就像那样:

  

我也想不通。 但是,Apple创建的这个测试页面在Android上播放HTML5音频: http : //www.apple.com/html5/showcase/audio

苹果是怎么做到的?

你检查过音频格式了吗?

我在Kindle Fire上遇到了麻烦,发现了一件似乎可以修复它的小东西。

  

我错误地使用了“audio / mp3”。 我正在使用没有原生控件的播放器(使用HTML5 / JS)。

我使用trigger.io部署到运行Android Jellybean的Nexus 7的项目上工作了,但是如果我现在使用绝对URL,则仅播放音频。 我不确定在我的项目中使用音频的相对路径是什么,但希望这会帮助某人…

 (function() { var currentSound; // I have a div called "page" var soundcv = document.body; // This only works for one sound for simplicity's sake function playSound(sound){ if (currentSound == null){ var audio = document.createElement('audio'); audio.src = sound; soundcv.appendChild(audio); currentSound = audio; } currentSound.play(); } // This isn't a real audio file URL - replace it with one of your own playSound('http://example.com/example.mp3'); })(); 

我一整天都在修补这个问题,我终于让我用我的旧三星Droid浏览器和雅虎网络玩家一起工作了:

   

作品很棒,在文本旁边放一个小箭头图标,你可以点击播放你的mp3。 谢谢雅虎。

我忘了提到在本地测试时,我的Chrome或Firefox浏览器中没有显示音频。 虽然在我的手机浏览器上运行良好。

我知道这是一个黑客,但它可以在任何地方工作(据我所知)!

您可以使用video元素并将您的mp3转换为mp4和ogg文件(og for android上的firefox)。 您也可以设置它的样式,以便它不会显示任何不必要的默认播放器。 见下面的代码:

  

然后您可以使用以下命令在js代码中播放它:

 var audioTest = document.getElementById("audioTest"); audioTest.addEventListener("ended",onSoundComplete,false); audioTest.play();