首页 > 解决方案 > 如何使用 html 和 javascript 在网页上自动播放声音

问题描述

我正在构建一个测验应用程序,基本上,我希望在用户进入网页开始播放测验时开始播放声音。

我尝试使用 javascript 在页面加载时激活声音,但浏览器不允许,它说:

仅在用户批准后才允许自动播放。

我尝试使用 jquery 自动单击按钮以启动声音,但它仍然无法正常工作。

const themeSound = new Audio("theme.mp3");
themeSound.play();

broswer error: Uncaught (in promise) DOMException: play() failed 因为用户没有先与文档交互。

但是如果我把这个功能放在一个按钮中,然后按下按钮,声音就会完美播放。

标签: javascripthtmljqueryaudio

解决方案


此限制是由浏览器施加在您身上的。

例如,在 chrome 中,在以下情况下允许自动播放声音:

  • 用户与域进行了交互(单击、点击等)。
  • 在桌面上,用户的媒体参与指数阈值已被超过,这意味着用户之前播放过有声视频。
  • 用户已将网站添加到移动设备的主屏幕或在桌面设备上安装 PWA。

通过使用 autoplay-policy 参数启动来禁用此功能chrome.exe --autoplay-policy=no-user-gesture-required

来源:https ://developers.google.com/web/updates/2017/09/autoplay-policy-changes


推荐阅读