javascript - 自谷歌自动播放政策更改以来如何在网站上播放通知声音

标签 javascript audio notifications autoplay beep

我一直在尝试在网站上发出短促的哔声,但谷歌自动播放政策更改不允许我这样做,我应该怎么做。我已经看到很多网站仍在这样做,例如 Facebook 聊天等。

我试过这个没有成功(也试过元素):

function beep(vol, freq, duration){
v=a.createOscillator()
u=a.createGain()
v.connect(u)
v.frequency.value=freq
v.type="square"
u.connect(a.destination)
u.gain.value=vol*0.01
v.start(a.currentTime)
v.stop(a.currentTime+duration*0.001);
}
beep(vol, freq, duration);

最佳答案

问题是根据 Chrome 的自动播放策略,在某些情况下自动播放声音会被阻止。

在以下情况下允许自动播放声音:

  • 用户有 互动 使用域(单击、点击等)。
  • 在桌面上,用户的媒体参与指数阈值已被超过,这意味着用户 以前玩过有声视频。
  • 用户已将网站添加到移动设备的主屏幕或 安装了 PWA 在桌面上。
  • 顶级帧可以将自动播放权限委托(delegate)给他们的 iframe 允许自动播放声音。

  • https://developers.google.com/web/updates/2017/09/autoplay-policy-changes#webaudio更多细节。

    关于javascript - 自谷歌自动播放政策更改以来如何在网站上播放通知声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58590871/

    相关文章:

    .net - 通过软件将音频输出路由到麦克风输入

    php - android中的网页更新通知

    javascript - 如何将包含 HTML 的字符串解析为 React 组件

    javascript - 一个好的 javascript/jquery 配色方案生成器(如 kuler)

    javascript - 如何将数组中的每个元素与一个值进行比较?

    android - FLAG_ONLY_ALERT_ONCE 是损坏的还是错误的,或者两者兼而有之?

    iOS 应用程序无法接收报亭通知

    javascript - 对于标题背景,Javascript 渲染速度是否比直接图像快?

    用于上传的 SIlverlight 编码 PCM

    windows - 如何避免DirectSound中的失真和卡顿?