Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 声音在Chrome桌面推送通知的service worker中不起作用_Javascript_Google Chrome_Audio_Push Notification_Service Worker - Fatal编程技术网

Javascript 声音在Chrome桌面推送通知的service worker中不起作用

Javascript 声音在Chrome桌面推送通知的service worker中不起作用,javascript,google-chrome,audio,push-notification,service-worker,Javascript,Google Chrome,Audio,Push Notification,Service Worker,当我收到通知时,我正试图在Chrome浏览器的推送通知中播放声音。 我已经在我的网站上设置了浏览器推送通知,但它不会播放声音。我已经通过了声音选项,但没有声音 选项={ '正文':'这是tst说明', “icon”:“icon.png”, '沉默':'假', “声音”:“bell.mp3” } 如果有其他方式播放通知中的声音,请告诉我。当前浏览器不支持通知。声音 请参见您可以尝试使用chromeweb扩展 它将收听服务人员并播放音频 简单的方法是在服务工作者中请求URL,并使用chrome.w

当我收到通知时,我正试图在Chrome浏览器的推送通知中播放声音。 我已经在我的网站上设置了浏览器推送通知,但它不会播放声音。我已经通过了声音选项,但没有声音

选项={
'正文':'这是tst说明',
“icon”:“icon.png”,
'沉默':'假',
“声音”:“bell.mp3”
}

如果有其他方式播放通知中的声音,请告诉我。

当前浏览器不支持通知。声音 请参见

您可以尝试使用chrome
web扩展

它将收听
服务人员
并播放音频 简单的方法是在服务工作者中请求URL,并使用
chrome.webRequest
在后台脚本中捕获它,如

如本文所述

更新 如本文所述

服务工作者需要一个安全的来源,如HTTPS。chrome extension://页面不是HTTP/HTTPS,而是安全的,因此此更改成为允许扩展注册服务工作者的必要步骤

“chrome extension”是作为允许服务人员参与的方案添加的

serviceworker脚本中

首先,您需要在

  • 请求服务工作者中的url
  • 使用chrome.webRequest.onBeforeRequest.addListener在后台脚本中捕获它
  • background.js中播放声音

正如@Alexander所提到的,MDN中目前不支持声音,或者您可以在弹出通知之后或之前全局声明myAudio对象并使用play()函数

myAudio = new Audio("alert_tone.mp3");

var notification = new Notification("Hi there", options);
myAudio.play();

正如你们在下面的链接中看到的

在撰写本文时,没有浏览器支持此选项


是的,浏览器不支持声音通知。如果您知道何时播放声音,您可以手动播放。感谢您的ans,但后台页面在ServiceWorker中不起作用,但为什么它有一个名为“silent”的属性?文档说“指定通知是否应静音-即,无论设备设置如何,都不应发出声音或振动。”这将在加载页面时播放音频,但在发送通知时不会播放音频。
myAudio = new Audio("alert_tone.mp3");

var notification = new Notification("Hi there", options);
myAudio.play();