2010-06-18 166 views
19

我有一个使用html5 <audio>标记在浏览器中播放音频的javascript。它在iPhone浏览器中正常工作,但不适用于Android。 (使用android 2.1的htc愿望进行测试。)任何人都知道为什么?在Android浏览器中播放html5音频

我的代码:

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(默认一个相当小)显示出来,没有运气迄今为止 - 会感激任何想法!

+0

佩卡:谢谢固定的格式!没有注意到我搞砸了。 – 2010-06-18 12:57:13

回答

1

你检查了你的audio format吗?

+0

是的,我在Android上运行良好的本机应用程序中使用完全相同的媒体文件。 3gp音频,是核心媒体文件的一部分。所以除非这些出于某种原因不能在html5标签中播放,即使它们可以在本地应用中,那也不应该是问题所在? – 2010-06-18 12:59:17

+0

嗯,看起来你是对的,虽然:有可能是Android支持的一般格式和它支持的音频标签之间的区别:http://www.w3schools.com/html5/html5_audio.asp – 2010-06-18 13:15:43

+0

@anderslov有你尝试过不同的浏览器。我不太了解android,所以我不确定你有什么选择。 – Jla 2010-06-18 13:46:57

14

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

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

+2

http://html5test.com显示不支持PCM,MP3,AAC, Ogg Vorbis或WebM音频在我的FroYo浏览器中。 – 2010-07-21 17:05:33

+1

感谢您的回答。但如果这不是一个错误,那么文档显然不清楚,要稍微说明一点 - 它应该清楚地声明不支持音频。 – 2010-08-11 15:02:39

+0

文档不清楚是怎么回事?目前没有浏览器支持html5 100%。你不希望他们记录下他们不支持的所有内容,这些都是来自w3c管道的东西?音频标签是最新浏览器刚刚开始采用的新功能。仅仅因为iPhone支持它并不会成为Android上的一个bug。 – 2010-08-11 17:05:17

12

这里是谷歌Android错误的链接,该错误是因Android缺乏对AUDIO标签的支持而提交的。 请投票。

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

BTW,有变通,这让你的Android 1.6。2.2播放MP3本身,像:

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

你是对的这个作品会膨胀。 – Grego 2011-10-14 11:44:33

+2

哇。真的,谷歌?如果你把它放在视频标签中,它就可以工作。他们把这件事搞得多糟糕了? – 2011-12-09 21:43:20

+0

我在Samsung Mini上运行Android 2.3.6,但仍然无法使用视频标签或音频标签播放我的小mp3。我测试它在铬和它的作品。你能确认视频标签的变通吗?任何其他的阅读你可以链接到它?谢谢:) – Reinsbrain 2012-11-16 18:42:53

1

我有我的Kindle Fire的麻烦,而且发现一件似乎修复它的小东西。

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

我误以为“音频/ mp3”。我使用的是没有原生控件的播放器(使用HTML5/JS)。

1

我在使用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'); 
})(); 
+1

来自Trigger.io的Amir与我联系,他解决了这个问题 - 如果你使用createElement('video'),那么它一切正常!看看[在我的Github上标记0.1的手机游戏Soft Paws](https://github.com/gavD/soft-paws/tree/v0.1),它在Trigger.io中运行,并具有声音 – 2012-08-23 21:55:00

0

我一直在摆弄这个一整天,我终于得到了我的与雅虎Web播放器在我的旧的三星Droid的浏览器中运行:

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

伟大工程提出旁边您可以点击播放MP3的文字一个小箭头图标。谢谢雅虎。

我忘了提及在本地测试时,音频不会显示在我的Chrome或Firefox浏览器中。尽管我的手机浏览器效果很好。

0

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

你可以使用视频元素,并将你的mp3转换成mp4和ogg文件(android的firefox ogg)。你也可以设计它的样式,所以它不会显示任何不适合的默认玩家。请参见下面的代码:

<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(); 
相关问题