javascript - 如何使用 html 和 javascript 在网页上自动播放声音
问题描述
我正在构建一个测验应用程序,基本上,我希望在用户进入网页开始播放测验时开始播放声音。
我尝试使用 javascript 在页面加载时激活声音,但浏览器不允许,它说:
仅在用户批准后才允许自动播放。
我尝试使用 jquery 自动单击按钮以启动声音,但它仍然无法正常工作。
const themeSound = new Audio("theme.mp3");
themeSound.play();
broswer error: Uncaught (in promise) DOMException: play() failed 因为用户没有先与文档交互。
但是如果我把这个功能放在一个按钮中,然后按下按钮,声音就会完美播放。
解决方案
此限制是由浏览器施加在您身上的。
例如,在 chrome 中,在以下情况下允许自动播放声音:
- 用户与域进行了交互(单击、点击等)。
- 在桌面上,用户的媒体参与指数阈值已被超过,这意味着用户之前播放过有声视频。
- 用户已将网站添加到移动设备的主屏幕或在桌面设备上安装 PWA。
通过使用 autoplay-policy 参数启动来禁用此功能chrome.exe --autoplay-policy=no-user-gesture-required
。
来源:https ://developers.google.com/web/updates/2017/09/autoplay-policy-changes
推荐阅读
- javascript - 获取 Express 中的请求数
- javascript - 如何将用户从 NodeJS 服务器发布到页面?
- javascript - 如何突出显示所有 div 并为每个 div 添加一种导航
- node.js - 如何修复更新与nodeJS中发送的ID不同的ID的PUT路由
- android - 如何解决在 setContentView() 之后返回 Null 的 findViewByID()
- python - 自动分配给 Python 默认参数的参数
- php - 如何实时更新页面以响应数据库更改?
- php - 如何让php将变量发送到python?
- laravel - 如何在Laravel 上使用 GuzzleHttp 提取标签
- java - 无法导入 android.support.v4.content.ContextCompat