Chrome扩展,在后台脚本中播放声音

2024-01-11

我想从 Chrome 扩展程序播放声音,但我读到内容脚本无法播放声音。所以我把这段代码放在我的后台脚本中:

var audio = new Audio("alert.ogg");
audio.play();

但还是没有声音。从 _ generated_background_page.html 的控制台中,我能够检查“网络”选项卡并看到声音文件已成功加载,但我什么也没听到。

另外,在另一个 HTML 页面中,我可以加载另一个 Javascript,其中包含上述代码,并且它可以工作(我可以听到声音。)

事实上它在后台脚本中似乎使它失败了。另外,请注意,我没有与后台 SCRIPT 关联的后台 PAGE。这有关系吗?

edit: 问题解决了。上面的代码有效,但我忘记听正确的声音输出通道。


您可以使用 javascript 生成背景页面。我认为声音必须在 html 页面中才能加载和播放。

这应该有效:

document.write('<audio id="player" src="data:audio/wav;base64,UklGRhwMAABXQVZFZm10IBAAAAABAAEAgD4AAIA+AAABAAgAZGF0Ya4LAACAgICAgICAgICAgICAgICAgICAgICAgICAf3hxeH+AfXZ1eHx6dnR5fYGFgoOKi42aloubq6GOjI2Op7ythXJ0eYF5aV1AOFFib32HmZSHhpCalIiYi4SRkZaLfnhxaWptb21qaWBea2BRYmZTVmFgWFNXVVVhaGdbYGhZbXh1gXZ1goeIlot1k6yxtKaOkaWhq7KonKCZoaCjoKWuqqmurK6ztrO7tbTAvru/vb68vbW6vLGqsLOfm5yal5KKhoyBeHt2dXBnbmljVlJWUEBBPDw9Mi4zKRwhIBYaGRQcHBURGB0XFxwhGxocJSstMjg6PTc6PUxVV1lWV2JqaXN0coCHhIyPjpOenqWppK6xu72yxMu9us7Pw83Wy9nY29ve6OPr6uvs6ezu6ejk6erm3uPj3dbT1sjBzdDFuMHAt7m1r7W6qaCupJOTkpWPgHqAd3JrbGlnY1peX1hTUk9PTFRKR0RFQkRBRUVEQkdBPjs9Pzo6NT04Njs+PTxAPzo/Ojk6PEA5PUJAQD04PkRCREZLUk1KT1BRUVdXU1VRV1tZV1xgXltcXF9hXl9eY2VmZmlna3J0b3F3eHyBfX+JgIWJiouTlZCTmpybnqSgnqyrqrO3srK2uL2/u7jAwMLFxsfEv8XLzcrIy83JzcrP0s3M0dTP0drY1dPR1dzc19za19XX2dnU1NjU0dXPzdHQy8rMysfGxMLBvLu3ta+sraeioJ2YlI+MioeFfX55cnJsaWVjXVlbVE5RTktHRUVAPDw3NC8uLyknKSIiJiUdHiEeGx4eHRwZHB8cHiAfHh8eHSEhISMoJyMnKisrLCszNy8yOTg9QEJFRUVITVFOTlJVWltaXmNfX2ZqZ21xb3R3eHqAhoeJkZKTlZmhpJ6kqKeur6yxtLW1trW4t6+us7axrbK2tLa6ury7u7u9u7vCwb+/vr7Ev7y9v8G8vby6vru4uLq+tri8ubi5t7W4uLW5uLKxs7G0tLGwt7Wvs7avr7O0tLW4trS4uLO1trW1trm1tLm0r7Kyr66wramsqaKlp52bmpeWl5KQkImEhIB8fXh3eHJrbW5mYGNcWFhUUE1LRENDQUI9ODcxLy8vMCsqLCgoKCgpKScoKCYoKygpKyssLi0sLi0uMDIwMTIuLzQ0Njg4Njc8ODlBQ0A/RUdGSU5RUVFUV1pdXWFjZGdpbG1vcXJ2eXh6fICAgIWIio2OkJGSlJWanJqbnZ2cn6Kkp6enq62srbCysrO1uLy4uL+/vL7CwMHAvb/Cvbq9vLm5uba2t7Sysq+urqyqqaalpqShoJ+enZuamZqXlZWTkpGSkpCNjpCMioqLioiHhoeGhYSGg4GDhoKDg4GBg4GBgoGBgoOChISChISChIWDg4WEgoSEgYODgYGCgYGAgICAgX99f398fX18e3p6e3t7enp7fHx4e3x6e3x7fHx9fX59fn1+fX19fH19fnx9fn19fX18fHx7fHx6fH18fXx8fHx7fH1+fXx+f319fn19fn1+gH9+f4B/fn+AgICAgH+AgICAgIGAgICAgH9+f4B+f35+fn58e3t8e3p5eXh4d3Z1dHRzcXBvb21sbmxqaWhlZmVjYmFfX2BfXV1cXFxaWVlaWVlYV1hYV1hYWVhZWFlaWllbXFpbXV5fX15fYWJhYmNiYWJhYWJjZGVmZ2hqbG1ub3Fxc3V3dnd6e3t8e3x+f3+AgICAgoGBgoKDhISFh4aHiYqKi4uMjYyOj4+QkZKUlZWXmJmbm52enqCioqSlpqeoqaqrrK2ur7CxsrGys7O0tbW2tba3t7i3uLe4t7a3t7i3tre2tba1tLSzsrKysbCvrq2sq6qop6alo6OioJ+dnJqZmJeWlJKSkI+OjoyLioiIh4WEg4GBgH9+fXt6eXh3d3V0c3JxcG9ubWxsamppaWhnZmVlZGRjYmNiYWBhYGBfYF9fXl5fXl1dXVxdXF1dXF1cXF1cXF1dXV5dXV5fXl9eX19gYGFgYWJhYmFiY2NiY2RjZGNkZWRlZGVmZmVmZmVmZ2dmZ2hnaGhnaGloZ2hpaWhpamlqaWpqa2pra2xtbGxtbm1ubm5vcG9wcXBxcnFycnN0c3N0dXV2d3d4eHh5ent6e3x9fn5/f4CAgIGCg4SEhYaGh4iIiYqLi4uMjY2Oj5CQkZGSk5OUlJWWlpeYl5iZmZqbm5ybnJ2cnZ6en56fn6ChoKChoqGio6KjpKOko6SjpKWkpaSkpKSlpKWkpaSlpKSlpKOkpKOko6KioaKhoaCfoJ+enp2dnJybmpmZmJeXlpWUk5STkZGQj4+OjYyLioqJh4eGhYSEgoKBgIB/fn59fHt7enl5eHd3dnZ1dHRzc3JycXBxcG9vbm5tbWxrbGxraWppaWhpaGdnZ2dmZ2ZlZmVmZWRlZGVkY2RjZGNkZGRkZGRkZGRkZGRjZGRkY2RjZGNkZWRlZGVmZWZmZ2ZnZ2doaWhpaWpra2xsbW5tbm9ub29wcXFycnNzdHV1dXZ2d3d4eXl6enp7fHx9fX5+f4CAgIGAgYGCgoOEhISFhoWGhoeIh4iJiImKiYqLiouLjI2MjI2OjY6Pj46PkI+QkZCRkJGQkZGSkZKRkpGSkZGRkZKRkpKRkpGSkZKRkpGSkZKRkpGSkZCRkZCRkI+Qj5CPkI+Pjo+OjY6Njo2MjYyLjIuMi4qLioqJiomJiImIh4iHh4aHhoaFhoWFhIWEg4SDg4KDgoKBgoGAgYCBgICAgICAf4CAf39+f35/fn1+fX59fHx9fH18e3x7fHt6e3p7ent6e3p5enl6enl6eXp5eXl4eXh5eHl4eXh5eHl4eXh5eHh3eHh4d3h4d3h3d3h4d3l4eHd4d3h3eHd4d3h3eHh4eXh5eHl4eHl4eXh5enl6eXp5enl6eXp5ent6ent6e3x7fHx9fH18fX19fn1+fX5/fn9+f4B/gH+Af4CAgICAgIGAgYCBgoGCgYKCgoKDgoOEg4OEg4SFhIWEhYSFhoWGhYaHhoeHhoeGh4iHiIiHiImIiImKiYqJiYqJiouKi4qLiouKi4qLiouKi4qLiouKi4qLi4qLiouKi4qLiomJiomIiYiJiImIh4iIh4iHhoeGhYWGhYaFhIWEg4OEg4KDgoOCgYKBgIGAgICAgH+Af39+f359fn18fX19fHx8e3t6e3p7enl6eXp5enl6enl5eXh5eHh5eHl4eXh5eHl4eHd5eHd3eHl4d3h3eHd4d3h3eHh4d3h4d3h3d3h5eHl4eXh5eHl5eXp5enl6eXp7ent6e3p7e3t7fHt8e3x8fHx9fH1+fX59fn9+f35/gH+AgICAgICAgYGAgYKBgoGCgoKDgoOEg4SEhIWFhIWFhoWGhYaGhoaHhoeGh4aHhoeIh4iHiIeHiIeIh4iHiIeIiIiHiIeIh4iHiIiHiIeIh4iHiIeIh4eIh4eIh4aHh4aHhoeGh4aHhoWGhYaFhoWFhIWEhYSFhIWEhISDhIOEg4OCg4OCg4KDgYKCgYKCgYCBgIGAgYCBgICAgICAgICAf4B/f4B/gH+Af35/fn9+f35/fn1+fn19fn1+fX59fn19fX19fH18fXx9fH18fXx9fH18fXx8fHt8e3x7fHt8e3x7fHt8e3x7fHt8e3x7fHt8e3x7fHt8e3x8e3x7fHt8e3x7fHx8fXx9fH18fX5+fX59fn9+f35+f35/gH+Af4B/gICAgICAgICAgICAgYCBgIGAgIGAgYGBgoGCgYKBgoGCgYKBgoGCgoKDgoOCg4KDgoOCg4KDgoOCg4KDgoOCg4KDgoOCg4KDgoOCg4KDgoOCg4KDgoOCg4KDgoOCg4KDgoOCg4KCgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGBgYCBgIGAgYCBgIGAgYCBgIGAgYCBgIGAgYCBgIGAgYCAgICBgIGAgYCBgIGAgYCBgIGAgYCBgExJU1RCAAAASU5GT0lDUkQMAAAAMjAwOC0wOS0yMQAASUVORwMAAAAgAAABSVNGVBYAAABTb255IFNvdW5kIEZvcmdlIDguMAAA" >');
document.getElementById('player').play();

我使用了 Base64 音频文件,但您也可以使用普通文件。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Chrome扩展,在后台脚本中播放声音 的相关文章

随机推荐

  • 干预 imagick 在终端中有效,但在浏览器中无效

    我完全不明白出了什么问题 我已经按照指导安装了干预here http image intervention io 然后我创建了以下 php 文件并启动了我的 localhost Apache 服务器并测试了结果 它成功了 这是代码 test
  • 如何安装更新的 MSBuild 版本?

    我正在尝试从源代码构建 Microsoft AspnetCore Identity 说明在这里 https github com dotnet aspnetcore blob master docs BuildFromSource md h
  • 材质设计 - 操作栏标题和内容的左边距不匹配

    我正在尝试按照以下准则设置屏幕边距布局 指标和关键线 https www google com design spec layout metrics keylines html 具体来说 移动屏幕上的列表内容应具有 72 dp 的边距 并与
  • 替换java中的字符序列

    我正在解析一个结构不良的 rss feed 并且返回的一些数据已 p at在里面 我怎样才能替换所有实例 p p at有一个空格 使用java 我很熟悉 replaceString 类的方法 但我不确定正则表达式的外观 我试过inputSt
  • 实施 Rijndael 解密时是否可以不使用 IV?

    我正在使用 Rijndael 算法实现密文解密 不幸的是 我无法访问数据的加密 并且只提供了密码 用于生成密钥 和算法类型 我没有盐 看起来没问题 也没有静脉注射 现在 我的问题是我是否绝对必须拥有 IV 才能执行解密 我怀疑编写加密的开发
  • 从字符串java中提取日期

    我有一个包含多个日期的字符串 例如 20 Jul 2012 5 11 36 670 UTC PM 20 Jul 2012 5 11 36 683 UTC PM 如何读取该字符串并提取每个日期 我正在使用SimpleDateFormat类来创
  • 将不同层独立部署到 Azure

    假设我有一个应用程序 它分为各个层 演示 业务 数据访问 如何将这些层独立部署到Azure 问题是关于Azure配置 而不是关于应用程序的架构 应用程序通常分为各种角色 每个角色都是 Windows Server 2008 R2 具有已定义
  • CardMedia高度材质-ui

    我正在努力尝试改变 CardMedia 内图像的高度 我设置样式 const style height 32 并将其用于
  • 使用 pip 从 github 的特定分支安装包

    我遇到了一个非常奇怪的问题 我尝试从我的 github fork 中 pip 安装一个包 我过去曾多次这样做过 而且总是有效 这就是我所做的 pip install git https my branch 虽然这在我的本地计算机上工作得很好
  • Python beautifulsoup 抢表

    我正在尝试从此网页中获取表格 我不确定我是否抓住了正确的标签 这是我到目前为止所拥有的 from bs4 import BeautifulSoup import requests page http www airchina com cn
  • 使用 LINQ to SQL 是否有助于防止 SQL 注入

    我正在建立一个公共站点 我首先想到的是 SQL 注入 我正在保存一些文本字段 并使用 linq 来更新 写入数据库 我使用 linq 安全吗 此示例正在创建用户帐户 Data MemberRegistrationDataContext co
  • 如何在 Android 中关闭/销毁 Firebase 引用?

    这是场景 创建了 firebase 引用 Firebase myRef new Firebase url In Main Activity 用户单击按钮导航到其他活动 调用主活动的 onPause 有没有办法销毁这个构造函数 此引用正在创建
  • Base64 编码图像 blob 未在 IE 中显示

    echo img src height 150 这在 firefox safari 和 chrome 中显示的图像效果很好 但在 Internet Explorer 中它显示了一个漂亮的红十字 我认为这是因为编码的原因 尝试更换data i
  • Nlog目标数据库在运行时设置连接信息

    使用 Nlog 和数据库目标 有没有办法在运行时设置连接信息 我记得我的一些同事也做过类似的事情 他找到了这样的答案 http nlog forum 1685105 n2 nabble com DDL for Database Table
  • 溢出:隐藏不适用于正方向的平移

    我最近遇到了一件奇怪的事情overflow hidden 我将它设置为一个元素 然后我想将其中的元素转换为translate 当它向负方向平移时 它将被隐藏 但如果我向正方向平移 它就不会被隐藏 在桌面浏览器中 它并没有真正显示出来 但您可
  • sp_executesql 与 'IN' 语句

    我试图使用 sp executesql 来防止 SQL 2005 中的 SQL 注入 我有一个像这样的简单查询 SELECT from table WHERE RegionCode in X101 B202 但是 当我使用 sp execu
  • 函数后面的const如何优化程序?

    我见过一些这样的方法 void SomeClass someMethod const 这个 const 声明有什么作用 它如何帮助优化程序 Edit 我看到这个问题的第一部分之前已经被问过 BUT 它仍然没有回答第二部分 这将如何优化程序
  • 可编辑文本字段的 UITableView 列表

    我知道这可能不符合 Apple 的 iPhone 人机界面指南 但我想摆脱一级推送视图并拥有可编辑文本字段的列表 此外 我希望当视图出现时键盘从一开始就出现在屏幕上 问题是 当我有超过三个这样的字段时 弹出键盘将覆盖下面的字段 用户无法向下
  • 如果 @Produces 注释缺失,球衣服务会返回什么?

    我开始学习开发安全的网络服务 正如我注意到的 大多数示例都使用以下注释 Consumes 定义输入参数的格式 Produces 定义输出参数的格式 但在实际代码中我看到的方法如下所示 POST Consumes MediaType APPL
  • Chrome扩展,在后台脚本中播放声音

    我想从 Chrome 扩展程序播放声音 但我读到内容脚本无法播放声音 所以我把这段代码放在我的后台脚本中 var audio new Audio alert ogg audio play 但还是没有声音 从 generated backgr