首页 > 解决方案 > Javascript:在浏览器中播放声音:以某种方式坚持用户与此页面交互?

问题描述

当前浏览器不允许 JS 播放声音,除非用户首先与页面交互。请参阅 https://developers.google.com/web/updates/2017/09/autoplay-policy-changes

我确实有一个页面可以可视化传感器的二氧化碳值,如果值太高,它应该使用 JS 播放警报声。为此,有一个按钮可以打开/关闭声音。

当用户与页面交互时,允许 JS 播放声音。 但是当重新加载完全相同的 URL 时(在同一台机器上),用户必须再次与页面交互以允许 JS 播放声音。我希望能够以某种方式保持用户已经与该特定 URL 交互的状态,因此当重新加载相同的 URL 并且用户在该声音应该播放之前选择时,我可以播放警告声音。有没有办法做到这一点?

为了给您更好的印象,这里有 2 个用户打开/关闭警告声音的屏幕截图。我想保留此选择(使用 localStorage 没问题),但 Chrome 不允许在重新加载页面后播放声音,除非用户再次交互。我希望被允许在页面重新加载后播放该声音。

用户开启的声音

声音被用户关闭

谢谢和问候菲利普

标签: javascriptgoogle-chromeaudio

解决方案


推荐阅读