为什么播放音频的Javascript代码需要在前面有alert()才能工作?

为什么播放音频的Javascript代码需要在前面有alert()才能工作?,javascript,angularjs,audio,Javascript,Angularjs,Audio,我想在浏览器上使用javascript播放.wav文件。以下代码不起作用 var audio = new Audio("alert.wav"); audio.play(); 然而,为了让它工作,我可以做一个简单的技巧,在前面添加一个虚拟的alert() alert("Dummy"); var audio = new Audio("alert.wav"); audio.play(); 我不知道它为什么有效。我的第一个问题是如何在没有虚拟警报的情况下播放音

我想在浏览器上使用javascript播放.wav文件。以下代码不起作用

var audio = new Audio("alert.wav");
audio.play();
然而,为了让它工作,我可以做一个简单的技巧,在前面添加一个虚拟的
alert()

    alert("Dummy");        
    var audio = new Audio("alert.wav");
    audio.play();
我不知道它为什么有效。我的第一个问题是如何在没有虚拟警报的情况下播放音频?第二个问题是为什么添加虚拟的
alert()
会让事情正常进行


此代码在AngularJS控制器中运行。不确定这是否重要。

好的,我想我已经发现了问题所在。我使用不同的.wav文件测试了您的代码。如果没有警报框,它可以正常工作。也许是: a) .wav文件的名称为警报。(可能重命名文件?)
b) 可能是文件本身。也许它不工作,也许重新下载它(不管你得到了什么),或者尝试一个类似的声音.wav文件?希望这有帮助

很高兴听到你成功了。我想知道这是否是因为我在使用AngularJS。这也可能是。我测试时没有使用AngularJS。