音频视频自动播放解决方案

1、音频视频自动播放解决方案

1.1、使用背景

公司项目需要用到音频自动播放的功能,首先想到的就是autoplay属性。

想让内容自动播放的最简单方法是将autoplay属性添加到元素,并将autoplay属性设置为 true ,当 autoplay 的属性为 true 时,媒体元素将在发生以下情况后尽快自动开始播放:

然而在实际操作的过程中,发现自动播放失败,并且出现如下的报错

Uncaught (in promise) DOMException: play() failed because the user didn’t interact with the document first.

这个问题当时困扰了我许久,一路解决的过程也是十分坎坷,所以我决定将解决方案记录下来,下面是我在解决问题的过程中找到的一些资料以及解决问题的方案。

C++音视频学习资料免费获取方法:关注音视频开发T哥,点击正在跳转即可免费获取2023年最新C++音视频开发进阶独家免费学习大礼包!


2、 为什么要禁止自动播放音频与视频

网页加载完成后立即播放音频(或带有音频轨道的视频)可能会意外地打扰到用户。尽管自动播放媒体文件是一个很实用的功能,但是我们也应该谨慎地使用它,保证只有在它被需要的时候才使用。为了让用户拥有控制权,通常浏览器会提供各种方式禁用自动播放音频功能。在这篇文章中,我们将介绍各种媒体和 Web Audio APIs 的自动播放功能,包括关于如何使用自动播放功能、如何优雅的处理阻止自动播放功能的一些简短的介绍。

以下网络功能和API可能会受到自动播放阻止的影响:

3、Chrome浏览器Audio标签的自动播放策略

Chrome的自动播放政策很简单:

由于本人是在PC端开发的,所以只能根据上面的条件总结出一下几种解决方案:

  1. 将audio的muted属性设置为true,能够实现静音播放,但是这并不满足我的需求
  2. 使用iframe