移动设备上的音频事件监听器不起作用

时间:2015-08-23 00:23:19

标签: javascript html5 html5-audio

我无法在移动设备上的eventlistener中播放音频片段

<html>
<head>
<script src='http://code.jquery.com/jquery-2.1.4.min.js'></script>
<script>
$(document).ready(function() {
    // Works with PC and Mobile
    $("#play").click(function() {
        var test = new Audio("http://www.w3schools.com/html/horse.ogg");
        test.volume = 1;
        test.play();
    });

    // Works with PC only
    $("#play2").click(function() {
        var test = new Audio("http://www.w3schools.com/html/horse.ogg");
        test.volume = 1;

        test.addEventListener('canplaythrough', function() {
            test.play(); // or this.play();
        });
    });
});
</script>
</head>
<body>
<button id='play'>Play</button>
<button id='play2'>Play 2</button>
</body>
</html>

第一个按钮适用于PC和Mobile,但带有事件监听器的第二个按钮仅适用于PC。我怎样才能让它在移动设备上运行?

事件触发,我可以做警报(123);并且它将执行,它只是不播放音频剪辑。

2 个答案:

答案 0 :(得分:1)

我找到了答案。

你必须致电:

test.play();
test.pause();

之后,您可以控制触发事件之外的音频元素。

答案 1 :(得分:0)

移动设备通常会阻止播放媒体,除非事件直接调用(在本例中为click)。这是为了防止使用移动数据,但遗憾的是限制了您可以使用媒体做的事情。