为什么刷新页面后我的Javascript音频不起作用?

时间:2019-07-27 18:32:59

标签: javascript audio promise

我的javascript中有一个音频对象,并调用了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计算机?

1 个答案:

答案 0 :(得分:2)

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

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