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

Why does this Javascript code to play audio needs to have alert() in front to work?

本文关键字:alert 在前面 工作 播放 音频 代码 Javascript 为什么      更新时间:2023-09-26

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

var audio = new Audio("alert.wav");
audio.play();

然而,为了让它发挥作用,我可以做一个简单的技巧,在前面添加一个伪alert()

    alert("Dummy");        
    var audio = new Audio("alert.wav");
    audio.play();

我不知道为什么它有效。我的第一个问题是,如果没有那个伪alert(),我如何才能播放音频?第二个问题是,为什么添加那个伪alert()可以让事情正常工作?

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

好吧,我想我已经发现了问题。我用另一个.wav文件测试了你的代码。没有警报框,它工作得很好。也许是:a) .wav文件的名称为alert。(可能重命名文件?)b) 可能是文件本身。也许它不起作用,也许重新下载它(不管你得到了什么),或者尝试一个听起来类似的.wav文件?希望这能有所帮助!