在Android浏览器中播放html5音频

时间:2010-06-18 11:16:11

标签: javascript iphone android audio html5

我有一个使用html5 <audio>标记在浏览器中播放音频的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中的音频按钮(默认的一个很小),到目前为止没有运气 - 会对任何想法感激不尽!

8 个答案:

答案 0 :(得分:14)

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

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

答案 1 :(得分:13)

以下是Google Android错误的链接,该错误导致Android中缺少对AUDIO标记的支持。 请投票。

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

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

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

答案 2 :(得分:4)

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

苹果是怎么做到的?

答案 3 :(得分:1)

您是否检查了audio format

答案 4 :(得分:1)

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

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

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

答案 5 :(得分: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');
})();

答案 6 :(得分:0)

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

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

Works great会在文本旁边放一个小箭头图标,您可以单击该图标来播放您的mp3。谢谢雅虎。

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

答案 7 :(得分:0)

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

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

<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();