如何在 Chrome 上设置音频自动播放

2023-11-27

音频自动播放可以在 Mozilla、Microsoft Edge 和旧版 Google Chrome 中使用,但不能在由于自动播放政策发生变化,Google Chrome 67+.

他们已阻止自动播放(直到满足链接博客文章中指定的特定会话条件)。如何在 Google Chrome 67+ 中自动播放音频?


解决方案#1

我的解决方案是创建一个iframe

<iframe src="audio/source.mp3" allow="autoplay" style="display:none" id="iframeAudio">
</iframe> 

and audio标签也适用于非 Chrome 浏览器

<audio autoplay loop  id="playAudio">
    <source src="audio/source.mp3">
</audio>

并在我的script

  var isChrome = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);
  if (!isChrome){
      $('#iframeAudio').remove()
  }
  else {
      $('#playAudio').remove() // just to make sure that it will not have 2x audio in the background 
  }

解决方案#2:

根据 @Leonard 的说法,还有另一种解决方法

创建一个iframe它不会播放任何内容,只是为了在第一次加载时触发自动播放。

<iframe src="silence.mp3" allow="autoplay" id="audio" style="display: none"></iframe>

mp3 文件的良好来源沉默.mp3

然后轻松播放您的真实音频文件。

<audio id="player" autoplay loop>
    <source src="audio/source.mp3" type="audio/mp3">
</audio>

我个人更喜欢解决方案#2因为它是一种更干净的方法,不需要过多依赖 JavaScript。

2019 年 8 月更新

解决方案#3

作为替代方案,我们可以使用<embed>

For Firefox看来音频自动播放正在工作,所以我们不需要<embed>元素,因为它将创建双音频运行。

// index.js
let audioPlaying = true,
    backgroundAudio, browser;
browser = navigator.userAgent.toLowerCase();
$('<audio class="audio1" src="audio.mp3" loop></audio>').prependTo('body');
if (!browser.indexOf('firefox') > -1) {
    $('<embed id="background-audio" src="audio.mp3" autostart="1"></embed>').prependTo('body');
    backgroundAudio = setInterval(function() {
        $("#background-audio").remove();
        $('<embed id="background-audio" src="audio.mp3"></embed>').prependTo('body');
    }, 120000); // 120000 is the duration of your audio which in this case 2 mins.
}

另外,如果您的音频有切换事件,请确保删除创建的<embed>音频元素。

Note:切换后,它将从头开始,因为<embed>已经被删除并且<audio>元素现在将正常播放。

$(".toggle-audio").on('click', function(event) {
    audioPlaying = !audioPlaying;
    $("#background-audio").remove();

    clearInterval(backgroundAudio);
    if (audioPlaying){
        $(".audio1").play();
        // play audio 
    }
    else {
        $(".audio1").pause();
    }

现在确保隐藏这些<audio> and <embed>元素

audio, embed {
    position: absolute;
    z-index: -9999;
}

Note: diplay: none and visibility: hidden将使<embed>元素不起作用。

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

如何在 Chrome 上设置音频自动播放 的相关文章

  • Facebook JS SDK渐进式网络应用程序问题

    我有一个使用 Angular 4 构建的渐进式 Web 应用程序 我的问题是从主屏幕应用程序使用时 Facebook 登录对话框不会自动关闭 在 Chrome 浏览器中打开时它工作得很好 但是当我从安装的主屏幕应用程序使用它时 对话框窗口打
  • 加密 Chrome 扩展程序?

    无论如何 要加密 Chrome 扩展程序 以免暴露源代码 您可以使用混淆器隐藏您的代码 市场上有很多可用的 像Google Closure编译器这样的工具很少 而且市场上有很多在线javascript ofuscators 你可以使用任何一
  • chrome 如何建立正确的字符编码?

    我最近一直在使用很多字符集 在尝试为随机网页建立正确的字符集时发现了很多问题 字符集可以在html文档的标题中设置 也可以在节 多次或有时声明被省略 尽管存在这些问题 chrome 每次都在设置最佳字符集方面做得很好 我尝试过搜索来源 ht
  • Active Adblock Plus 在 Chrome JS 控制台中显示奇怪的错误

    我使用 Chrome 浏览的每个页面都会在控制台中显示此错误 扩展 uncaught exception handler 8 事件处理程序中出现错误 未知 SyntaxError 无法在 CSSStyleSheet 上执行 insertRu
  • Chrome 打包应用程序 - 在后台/事件页面中使用 AngularJS

    当我们创建 Chrome 应用程序时 我们将脚本放在背景属性中清单 json file 这将用作应用程序的背景 事件页面 我想要的是 我想使用 AngularJS后台脚本但我不知道怎么办 还有 这可能吗 我刚看到一些答案 https sta
  • SVG 过滤器在 Firefox 中不显示,在 Chrome 中工作正常

    我想要深色背景上的一段深色文本外面有白色的光芒 虽然默认阴影滤镜 https developer mozilla org en US docs Web CSS filter drop shadow 2在 CSS 中 比如filter dro
  • localhost 拒绝在 chrome mac 中连接

    我正在使用 webpack dev server 使用此命令运行服务器 npm run dev 当我使用npm start 它工作得很好 但不想这样做 因为它是为了生产 到目前为止我的服务器运行良好http 本地主机 3000 http l
  • Chrome 19 无法识别字体粗细:较轻

    我刚刚启动了一个正在开发的项目以进行一些修改 并注意到该声明font weight lighter正在通过以下方式提供服务 font face并且它不再在网站上运行 参见图片 顶部镀铬 底部 ff 自昨晚以来 我的系统 Windows 上没
  • 如何从上下文菜单中显示模式弹出窗口?

    如何从上下文菜单中显示模式对话框 我可以从上下文菜单中显示一个新窗口 该窗口在自己的选项卡中打开 var menuItem id rateMenu title Rate Item contexts all chrome contextMen
  • 如何解决“消息端口在收到响应之前已关闭”的问题。在 JavaScript 中的 window.location.reload() 之后

    我遇到了 javascript 问题 从 chrome v73 0 3683 86 开始 每当我在 window location reload 函数之后运行 javascript 代码时 它总是给我错误 Unchecked runtime
  • 如何防止 Google Chrome 阻止我的弹出窗口?

    在我的网站上有一个按钮 用于调用一个函数 该函数调用window open不过 最近需要进行调整 在弹出窗口打开之前进行服务器端检查 自从添加执行 AJAX 调用的代码后 浏览器就会阻止在successAJAX 调用的回调 我读到 如果用户
  • Mobile Safari 在 play() 时跳过 HTML 音频的前几秒

    我有一个 React Audio Player 它使用 useAudio 挂钩来管理 HTML5 音频 除了 Mobile Safari 之外 它在任何地方都可以正常工作 在 Mobile Safari 中 声音会在播放器开始播放后几秒钟开
  • Chrome 浏览器上的自动文件下载限制为 10 个文件

    我有一个网页 我们根据用户对页面项目的选择生成 PDF 这会导致回发 它是一个 ASP NET WebForms 页面 从而在服务器端创建 PDF 一个 a class documentDownload 然后将标签添加到每个项目的页面 当页
  • 浏览器特定的 CSS 属性

    在哪里可以找到完整的 浏览器特定 css 属性 参考 我的意思是一些属性 例如 moz border radius这仅适用于 Firefox 或 webkit min device pixel ratio 这些示例仅适用于指定的 Web 浏
  • 如何在 Chrome 中实现抓取光标图标?

    我知道可以在 Chrome 中使用抓取光标图标 当然是在 Gmail 中 但我不知道如何在我的代码中实现它 我已经尝试过 在CSS中 body cursor grab body cursor webkit grab body cursor
  • 浏览器会自动插入哪些 DOM 元素?

    我正在生成 XPaths 服务器端以供客户端使用 我很困惑为什么only表路径 即内容在td 在 DOM 中找不到 事实证明 现代浏览器 至少 Chrome 和 Firefox 插入了tbody文档加载时在表格行周围添加标签 看为什么浏览器
  • Chrome Prerender 功能每次都会被取消

    我正在尝试 Chrome 中的预渲染功能 但是当我检查网络时 我可以看到任何链接的请求都被取消 我使用以下语法 我尝试了现场演示http prerender test appspot com http prerender test apps
  • 绑定 popstate 事件不起作用

    我尝试在浏览器的控制台中输入以下代码 window onpopstate function alert 1 然后单击后退按钮 没有显示任何警报 难道我做错了什么 或者是否不允许将 popstate 事件绑定到控制台的页面 使用 Chrome
  • 有没有办法在 Google Chrome 中获取 XPath?

    我有一个网页想要与 YQL 一起使用 但我需要特定项目的 XPath 我可以在 Google Chrome 的调试工具区域中看到它 但我没有找到复制该 XPath 的方法 有没有办法复制完整的 XPath 您可以使用 x在 Chrome j
  • 如何在自定义新标签页上显示 chrome 书签栏?

    我有一个问题 我构建 chrome 扩展并使用我的自定义页面覆盖 newtab 页面 书签栏显示在默认的 Chrome 新标签页上 但隐藏在我的自定义新标签页上 也许 有人有一些想法 如何使用 CHROME API 显示书签栏 请跳过诸如按

随机推荐

  • C++、OpenCV:调整大小时断言失败

    作为一名 C 初学者 我目前面临着一个我无法解决的问题 即使代码非常简单 我一直在寻找answers互联网上到处都是 但没有一个适用于我的问题 我目前正在 VS2013 下使用 OpenCV 2 4 8 用 C 编写基本的 SVM 我能够处
  • OpenSSL::SSL::SSLContext SNI servername_cb 不工作

    正如中所引用的OpenSSL X509 证书显示错误域名的证书 我需要使用 TLSv1 或更高版本and 服务器名称指示扩大 即使ssl version and servername cb通过设置SSLContext 我仍然收到错误的证书m
  • 动态创建一个继承自ActiveRecord的类?

    我希望能够动态创建继承自 ActiveRecord 的类 以便在 Rails 应用程序外部编写脚本 我被困在这样的事情上 require active record def create arec table name Class new
  • 如何在graphql和strapi中传递JSON对象

    当我手动编写突变查询 在 graphql 插件中 时 它正在工作 mutation createExam input data name myName desription ggg questions gf hello time 2 sub
  • Java Web 服务返回带有 > 和 < 而不是 > 和 < 的字符串

    我有一个返回字符串的 java web 服务 我正在创建这个 xml 字符串的主体DocumentBuilder and Document班级 当我查看返回的 XML 源 在浏览器窗口中看起来很好 而不是 时 它返回 lt and gt 围
  • Git 类似于 Hg 的 Bigfiles 扩展?

    我想要 git 中类似的东西Mercurial 的 Bigfiles 扩展 注 据我所知git 大文件 但这无关 基本上我想在我的 git 存储库中存储大型二进制文件 但我不想在进行克隆时获得大型二进制文件的每个版本 我只想在签出包含这些大
  • 使用 ReferenceEquals 的 IEqualityComparer

    有默认的吗IEqualityComparer
  • 可能有 ``a < b and not(a - b < 0)`` 带浮点数

    Is a lt b and not a b lt 0 由于浮点轮误差可能导致浮点吗 有例子吗 这个答案旨在作为对帕特里夏 沙纳汉已经给出的好答案的学究补充 这个答案涵盖了正常情况 在这里 我们担心的是您在实践中不太可能遇到的边缘情况 是的
  • “phpinfo():依赖系统的时区设置是不安全的......”[重复]

    这个问题在这里已经有答案了 在运行 Blue box FreeSwitch PBX 前端 的 php 安装脚本时 我收到有关时区故障的错误 然后我开始挖掘 我不确定此时发生了什么 但这是我所拥有的 我在 public html 目录中创建了
  • MS Access - 链接到另一个 Access 数据库中的查询

    如何链接来自另一个 MS Access 数据库的查询 我知道我可以轻松链接表格 但我不知道如何链接查询 该查询从许多我不想链接的表中获取数据 你可以这样做 SELECT RemoteQueryname FROM RemoteQuerynam
  • .NET WebClient.UploadValues 与 WebClient.UploadData

    我正在编写一个类库来在我控制之外的站点上执行操作 该网站正在接受表单帖子作为输入 谁能告诉我这两种方法除了上传数据的形式之外是否有区别 System Net WebClient UploadData Uri Byte System Net
  • scanf("%[^\n]s",a) 与 gets(a)

    有人告诉我 当用户输入字符串时不应使用 scanf 相反 大多数专家以及 StackOverflow 上的用户都使用 gets 我从来没有在 StackOverflow 上问过为什么不应该使用 scanf 而不是 gets 来处理字符串 这
  • C++ 循环遍历 Map

    我想迭代中的每个元素map
  • Mono 准备好迎接黄金时段了吗? [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 有人在大型或中型项目中使用过 Mono 开源 NET 实现 吗 我想知道它是否适合现实世界的生产环境 它稳定 快速 兼容 足以使用吗 将项目移植到 Mono 运行时是否需要花费很多精力 或
  • 颤动相机插件

    我对 Flutter 和 Dart 都很陌生 我正在尝试使用相机插件了解事情是如何运作的 我找到的所有示例都有这部分 List
  • Galaxy S5 上的 FOCUS_MODE_CONTINUOUS_PICTURE 出现问题

    我正在开发一个使用相机预览和拍照的 Android 应用程序 我用FOCUS MODE CONTINUOUS PICTURE使用 Galaxy S4 发现对焦效果非常好 然而 在 Galaxy S5 上FOCUS MODE CONTINUO
  • iCarousel 停在用户选择的索引处

    EDIT 我正在制作一个像老虎机一样的应用程序 我补充道iCarousel对于槽对象 所以我有一个按钮可以旋转iCarousel 在我的 iCarousel 视图中 有两个插槽 Slot1 和 Slot2 下面是我的iCarouselVie
  • 使用 mongoose 切换数据库

    您好 有没有办法用 mongoose 切换数据库 我想我可以这样做 mongoose disconnect mongoose connect localhost db 但它不起作用我收到此错误 Error Trying to open un
  • NextJS TypeError:无法读取 null 的属性(读取“长度”)

    有人知道这个错误的原因吗 warn Fast Refresh had to perform a full reload Read more https nextjs org docs basic features fast refresh
  • 如何在 Chrome 上设置音频自动播放

    音频自动播放可以在 Mozilla Microsoft Edge 和旧版 Google Chrome 中使用 但不能在由于自动播放政策发生变化 Google Chrome 67 他们已阻止自动播放 直到满足链接博客文章中指定的特定会话条件