js控制音频播放无效

前言:在开发一个聊天客服的时候,有一个需求就是,当用户发送消息过来的时候,客服需要有声音提示

一、首次代码如下:

<audio src="" id="voice" autoplay style="display: none;"></audio> 
$('#voice').attr('src', zuoxiData.onlineSound)// 当audio设置了autoplay时,更换src的值就会触发播放

结果:我发现有时候不会生效,于是运行的时候我打开了源代码,我看该条指令其实已经触发,但并没有相应的声音出现,也没有报错

注意:使用上面这个方法浏览器会直接执行但不会有声音!

二、更改代码尝试:

于是我更换了如下代码:

    <audio src="" id="voice" style="display: none;"></audio>
          $('#voice')[0].play();

结果:发现有时候还是不会触发,但是控制台报错了,错误如下:

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

三、原因:google浏览器的规定问题

查询资料后发现是google浏览器的规定问题,为防止噪音,不允许在用户交互出现前自动播放声音,每次点击页面后再执行会有声音,但不点击的话,就不会有声音

我换了一个浏览器,发现声音触发每次都有效,果然是浏览器的问题,目前没有找到代码层面解决问题的方法,只能让坐席自己先创建点击交互,或者更换浏览器了

或者还有一些更改浏览器设置的方法,参考链接:

Uncaught (in promise) DOMException: play() failed because the user didn't interact with the document_穹劲天空的博客-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值