停止播放两个声音同时播放

时间:2014-11-14 16:40:20

标签: javascript

我正在尝试为第二个声音添加延迟,因此它仅在第一个声音播放完毕后播放。我怎样才能做到这一点?我已经尝试过setTimeout,但它不起作用。

 var notify = new Audio('resources/vox/notify.mp3');
 var hello = new Audio('resources/vox/hello.mp3');

 var commands = {
            'hi': function () {
            notify.load();
            notify.play();
            hello.load();
            setTimeout(hello.play(), 3000);
            $('#hello_r').show("slow");
        }
    };

2 个答案:

答案 0 :(得分:1)

尝试

setTimeout(function() { hello.play(); }, 3000);

答案 1 :(得分:1)

在setTimeout:

的回调中需要一个匿名函数包装器
setTimeout(function() {
    hello.play();
}, 3000);

如果您要在音频标签中呈现音频文件,您还可以执行以下操作:

<audio id="Notify" onended="playHello();"></audio>

假设setTimeout是一种相当黑客的方式来解决这个问题。有关DOM ended属性的详细信息,请参阅this链接。