当前位置: 首页 > news >正文

浏览器自动播放策略

在项目中实可能会有这样的需求:比如现进入某个页面,或者我们连接了websocket符合条件后,要进行自动播放音频或者视频。

在实现这个需求之前,我们要先了解一下浏览器的自动播放策略,浏览器为了改善用户体验,对自动播放做了严格限制!!!这个大家也可以自行去查找一下相关内容,这里就简单说一下

比如我们的video标签,设置了视频资源路径src,也设置了autoplay,但是它并没有播放,然后我们再将其mute属性设置为true,就可以自动播放了,但是没有声音!!!音频也是一样的,我们设置对应的音频资源src,也设置了autoplay,它不会自动播放的。想让其有声音,就必须是用户已经与当前域进行了交互,比如click事件

需求解决:

了解上面的内容后,想实现我们自动播放的需求,那我们可以换个角度思索来实现:

首先是在系统第一次加载完成后,我们就自动往document.body中appendChild一个video元素或audio元素,这个时候我们只设置mute为true即可(也就是默认静音),把元素先加到dom树中。

第二步就是我们要在进入我们的需求页面之前,在用户的某次操作中修改我们开始加入到dom树中的video/audio标签的mute属性为false(就是在用户无感知的情况下来解除静音),比如:登录事件、或者用户在进入我们的需求页面之前一定会触发的行为操作都可以,这个看大家各自项目的需求。

第三步就是在我们的需求那里需要播放声音的时候,直接设置src(视频/音频 路径),然后调用play方法即可,就可以实现自动播放。

我这里以音频为例,下面是我们封装的一个工具类@/utils/AutoPlayer.ts:<

http://www.dtcms.com/a/322303.html

相关文章:

  • 李宏毅深度学习教程 第16-18章 终身学习+网络压缩+可解释性人工智能
  • [CISCN 2021初赛]rsa
  • 建筑物实例分割数据集-9,700 张图片 城市规划与发展 灾害评估与应急响应 房地产市场分析 智慧城市管理 地理信息系统(GIS) 环境影响评估
  • 前端视角下关于 WebSocket 的简单理解
  • 华为实验-VLAN基础
  • Kafka学习记录
  • UE蓝图节点Add Impulse和Add Torque in Radians
  • 面向软件定义汽车的确定性以太网网络解决方案
  • ARMv8 MMU页表格式及地址转换过程分析
  • [CUDA] CUTLASS | C++ GEMM内核--高度模板化的类
  • 快速使用selenium+java案例
  • 系统开发 Day1
  • PyLS简介
  • NumPy性能飞跃秘籍:向量化计算如何提升400倍运算效率?
  • 【C++详解】AVL树深度剖析与模拟实现(单旋、双旋、平衡因⼦更新、平衡检测)
  • 云服务器--阿里云OSS(2)【Springboot使用阿里云OSS】
  • Datawhale AI夏令营-记录2
  • Kotlin初体验
  • 【linux基础】Linux 文本处理核心命令指南
  • 代码随想录day59图论9
  • NY151NY152美光固态闪存NY153NY154
  • 利用whisper api实现若无字幕则自动下载音频并用 whisper 转写,再用 LLM 总结。
  • JVM相关(AI回答)
  • 等保测评-RabbitMQ中间件
  • 【Java EE初阶 --- 网络原理】JVM
  • 从零玩转Linux云主机:免费申请、连接终端、命令速查表
  • 分析报告:基于字节连续匹配技术的KV缓存共享实施可能性及其扩展
  • ✨ 基于 JsonSerialize 实现接口返回数据的智能枚举转换(优雅告别前端硬编码!)
  • 【Linux】Socket编程——UDP版
  • (nice!!!)(LeetCode 面试经典 150 题) 146. LRU 缓存 (哈希表+双向链表)