页面无法自动播放音频的解决方案

问题描述:

最近在做一个客服电话平台(电话呼出呼入),因为里面使用了webRTC实现了软电话功能,所以现在电话呼入之后,页面弹出接听弹窗并且播放来电铃声,提醒用户接听所以就使用了audio标签的play() 做自动播放(很久以前这么做过),但是没想到报错如下:

Uncaught (in promise) DOMException: play() failed because the user didn't interact with the document first. https://goo.gl/xX8pDD

原因分析:

官方解释:最早是为了节约移动端的带宽和仿扰民(广告自动播放音频)阻止了自动播放,只有用户在页面上有交互动作后,才可以自动播放;

后来,紧接着在2018年4月份发布的Chrome 66也正式关掉了声音自动播放,也就是说<audio autopaly></audio> <video autoplay></video>在桌面版浏览器也将失效。


解决方案:

方法一:对应视频来说,把音视频加一个muted的属性(静音)就可以自动播放,这样会显示一个声音被关掉的按钮。

但是,如果只是一个音频的播放,如果背景音乐,或者我遇到的来电铃声这种情况,可以用一下方式处理:

方法二:在页面加载完成后,弹窗提示让用户点击可以自动播放音频

方法三:监听页面,判断页面交互了即有点击操作了之后自动播放

紧接着:在用户点击之后,将音频自动播放,并且静音,然后再需要的时候关掉/开启禁音即可!

参考文章:Chrome 66禁止声音自动播放之后

文章仅为本人学习过程的一个记录,仅供参考,如有问题,欢迎指出

对博客文章的参考,若原文章博主介意,请联系删除!请原谅

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值