首页 > 解决方案 > JavaScript play() 函数在 Chrome 中不起作用

问题描述

我创建了一个音频对象,并希望在用户离开窗口时播放它。所以,我的代码在这里:

$('body').on('mouseleave', function(){
    var audio = new Audio( 'quite-impressed.mp3' )
    audio.play()
})

它在 Firefox 中运行良好。如果我单击页面然后将鼠标留在正文之外,它也适用于 Chrome。但是,当我离开鼠标而不单击页面时,控制台中显示错误并且音频不播放

Uncaught (in promise) DOMException: play() failed 因为用户没有先与文档交互。https://developers.google.com/web/updates/2017/09/autoplay-policy-changes

但是,在这个示例站点中,它可以在不与页面交互的情况下正常工作。我怎样才能使它成为可能?提前致谢。

标签: javascriptgoogle-chromeaudio

解决方案


这在 Chrome 77 上对我有用:

  • 在地址栏上:chrome://settings/content/sound
  • 关闭“允许网站播放声音(推荐)”
  • 再次开启

推荐阅读