Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么刷新页面后Javascript音频不工作?_Javascript_Audio_Promise - Fatal编程技术网

为什么刷新页面后Javascript音频不工作?

为什么刷新页面后Javascript音频不工作?,javascript,audio,promise,Javascript,Audio,Promise,我的javascript中有一个audio对象和对play函数的调用。当我第一次进入该页面或通过其他页面的链接进入该页面时,它可以正常工作,但是当我在有音频的页面上并且只想刷新页面时,我会出现音频错误 Uncaught (in promise) DOMException 我读过一篇帖子,说有人的音频只有在刷新几次后才能正常工作(与我的问题相反)。我已经读到了这个错误。但我所要做的就是刷新页面,让事情像第一次一样正常工作 console.log("playing test sound"); le

我的javascript中有一个audio对象和对play函数的调用。当我第一次进入该页面或通过其他页面的链接进入该页面时,它可以正常工作,但是当我在有音频的页面上并且只想刷新页面时,我会出现音频错误

Uncaught (in promise) DOMException
我读过一篇帖子,说有人的音频只有在刷新几次后才能正常工作(与我的问题相反)。我已经读到了这个错误。但我所要做的就是刷新页面,让事情像第一次一样正常工作

console.log("playing test sound");
let test_sound = new Audio('/static/audio/to-the-point.mp3');
test_sound.play();
这在我第一次进入页面时有效,但在我刷新页面时会出现错误,并且无论我刷新多少次,音频都不起作用。。。有什么想法吗


编辑:在反复播放时,音频在刷新时出现错误的次数非常不一致。有时,刷新是正常的,但有时它只是得到一个错误。但一旦它得到错误,后续刷新也会得到它。可能是我的chrome浏览器或mac电脑?

根据我自己的研究和@Kokodoko的帮助,在允许使用音频之前,您必须与您的网页进行交互。这就是为什么当我来自另一个页面时它对我有效,但当我刷新时失败的原因

解决方案:让用户进行交互。
不幸的是,在用户交互之前播放音频没有真正的解决方法。在音频开始之前,强制用户以某种方式进行交互是使音频正常工作的唯一方法

Uncaught(承诺中)DOMException
与您的
音频
无关。剧本正在消亡还有另一个原因。真的可以是任何事情。不看完整的代码是不可能分辨的。您在问题中添加的代码片段当然是正确的。这是因为在没有用户交互的情况下,不允许播放音频。一旦用户交互发生,音频将被允许播放。有时甚至当你重新加载页面时(有时不…我不知道为什么:)@MarcoBonelli我发布的代码就是我所说的代码。没什么了…@Kokodoko我想知道你是否可以详细说明一下,因为这似乎与我的发现一致。因此,除非用户与页面交互,否则音频无法开始播放?这就解释了为什么当我来自另一个页面时它可以工作,而当我只是刷新时它就不工作了。但这似乎是一件疯狂的事情。当页面刷新时,有没有办法播放音频?很高兴你找到了答案。我认为添加此行为是为了防止用户不想要的恼人音频(例如来自横幅),尤其是在打开新选项卡时。