音频对象无法在移动设备上的回调中播放

时间:2014-12-04 10:53:06

标签: javascript android callback html5-audio mobile-devices

在我看来,在移动设备上运行时,无法在JavaScript回调中轻松播放Audio对象。下面的代码显示了一个onload功能,它可以在PC上播放加载网页时的声音,但在Android手机上什么也不播放。

我不知情的猜测是,在Audio对象开始播放之前,回调会返回,因此,由于某种深层原因,它会死掉。

这有什么办法吗?在完整版中,JavaScript会从URL中读取要播放的声音。


<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>Play Me</title>
    <style>
        body {background-color:lightgrey}
        h1   {color:blue}
        p    {color:green;font-size:50px}
    </style>
</head>
<body onload="playMySound()">
<P>
PLAY ME
<button onclick="playMySound()">sound me</button>
</P>

<br>
<script>
    var mySound ;

    function playMySound () {
        var soundUrl = "http://www.letiketa.com/myapp/sound.ashx?sound=sound1" ;
        var mySound = new Audio(soundUrl);
        // Actually play the sound
        mySound.play() ;
    }

</script>


按钮在所有设备上正确播放声音,我想这是一个回调......? onload回调有什么特别之处吗?

1 个答案:

答案 0 :(得分:0)

Argh,这与移动设备上的事实有关,目前,除非用户做了一些输入,否则HTML5不允许播放声音,大概是说#34;我允许你播放声音。&#34 ;无论如何,最新的Firefox浏览器V34似乎已经解除了限制,所有工作都应该如此。

Chrome中也有修复,您需要在地址栏中转到&#34; about:flags&#34;并找到所需的手势&#34;选项,禁用它。

毕竟这个我两天前写的节目现在有用......