在Android浏览器中播放html5audio

我有一个JavaScript,在浏览器中播放audio,使用html5 <audio>标签。 它在iPhone浏览器中正常工作,但不在Android中。 (用android 2.1testing使用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显示的audiobutton(默认的是很小),没有运气,迄今为止 – 将感激任何想法!

FroYo中最新的Android浏览器还不支持HTML5audio元素。 这不是一个错误,而是一个尚未实现的function。 它可能会进姜饼。

更新:姜饼浏览器有audio元素。

这里是链接到谷歌Android错误,这是由于缺乏Android的audio标签的支持。 请投票。

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

顺便说一句,有工作,这让你在Android 1.6本机MP3播放。2.2,这样的:

 <video src="test.mp3" onclick="this.play();"></video> 

我也无法弄清楚这一点。 但是,由Apple创build的这个testing页在Android上播放HTML5audio: http : //www.apple.com/html5/showcase/audio

苹果是怎么做到的?

你有没有检查你的audio格式 ?

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

 <audio> <source src="someclip.mp3" type="audio/mpeg" /> </audio> 

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

我使用trigger.io部署到运行Android Jellybean的Nexus 7的项目中,这个项目正在进行中,但是,如果我现在使用绝对URL,audio将只能播放。 我不确定相关path是否在我的项目中使用audio,但希望这可以帮助别人…

 (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浏览器与雅虎networking播放器的工作:

 <a href="somefolder/file.mp3"></a> <script type="text/javascript" src="http://webplayer.yahooapis.com/player.js"></script> 

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

我忘了提及在本地testing时,audio不会显示在我的Chrome或Firefox浏览器中。 虽然我的手机浏览器很好用。

我知道这是一个黑客,但它到处(根据我所知)!

你可以使用video元素,并将你的mp3转换成mp4和ogg文件(android的firefox的ogg)。 你也可以devise它,所以它不会显示任何不相关的默认玩家。 见下面的代码:

 <video id="audioTest" width="1" height="1" style="top: -100px; left: -100px; position: absolute;" preload > <source src="audio.mp4" type="video/mp4"> <source src="audio.ogv" type="video/ogg"> </video> 

然后你可以使用你的js代码来播放它:

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