播放声音x次,相隔x秒。 setTimeout不起作用

时间:2018-01-08 14:17:39

标签: javascript

当条件满足时,我想播放通知声音(短蜂鸣声)x次,其间有x个时间。我写了以下脚本:

    <activity
        android:name=".MainActivity"
        android:theme="@style/AppTheme.TransparentActivity">
     </activity>

在检查safari调试器时没有错误并且触发了setTimeout,但在第一次发出蜂鸣声后,没有其他声音被听到。 (音频文件的长度为aprox 1秒)

有人可以解释为什么它不起作用吗?

1 个答案:

答案 0 :(得分:0)

尝试使用短音,因为如果您在上一个声音结束前播放声音,则第二个声音将被静音。

<script src="https://code.jquery.com/jquery-3.2.1.min.js" integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4=" crossorigin="anonymous"></script>
<audio id="sound">
  <source src="alert.wav" type="audio/wav">
</audio>
<input type="text" id="times" value="5">
<button id="btn" type="button">Play Alert</button>
<script>
    $(document).ready(function () {
        var audio = new Audio("alert.wav");
        let times = 0;
        $("#btn").on("click", function() {
            times = parseInt(document.getElementById("times").value);
            playAudio();
        });

        playAudio = function() {
            audio.play()
            times --;
            if (times) setTimeout(playAudio, 333);
        }
    });
</script>