2

我正在做一个简单的计数器,最后有声音。它在桌面 Chrome 上完美运行,但在 Android 的 Chrome 上(如果重要的话是 ICS)它有一个奇怪的错误。

这是代码

<!DOCTYPE html>
<html lang="hu-HU">
<head>
<meta charset=utf-8>
    <title>-</title>
    <script type="text/javascript" src="jquery.min.js"></script>
    <script type="text/javascript"> 
        var snd;
        var buzzer;
        // refresh the counter, called every sec
        function refresh(time) {
            second = time % 60;
            $('#second').html(second < 10 ? '0' + second : second);
            if(second>55) 
                snd.play();             
        }

        $(function() {          
                snd = new Audio('ding.wav');                                
                var clock = 52;
                refresh(clock);
                window.setInterval(
                    function() {                        
                        clock++;
                        refresh(clock);
                    }, 
                    1000
                );
            }
        );

    </script>


    </style>
</head>
<body>

    <div id="second"></div>


<a href="#" onclick="doit();">Play</a>
<script>
    function doit() {
        snd.play();
    }
</script>
</body>
</html>

在移动 Chrome 中,通常不会播放声音,这应该很奇怪。但是,如果我按下播放链接一次它就像一个魅力。知道如何解决这个问题吗?

4

1 回答 1

2

移动浏览器会阻止 JavaScript 在没有用户启动事件的情况下播放声音。这与 MobileSafari 的行为相同。

请参阅这些相关的 SO 问题:

于 2012-08-13T17:05:44.223 回答