jquery audio在微信或者客户端需要点击两次才能正常播放的问题解决方案

探讨H5页面中音频首播失败问题,分析原因在于默认屏蔽自动播放,提出解决方案:预设无声音频,确保首次播放成功。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这里不处理音频自动播放问题。

先说明一下问题场景:

默认audio的source的src为空,通过点击事件触发ajax方法通过后台获取音频地址然后播放,发现音频无法正常播放,再次点击时才能播放。

这里解释一下点击事件流程,若当前audio的音频src为空,则调用ajax获取音频地址,动态改变audio的src,然后调用play()方法播放音频,如果当前audio音频地址不为空,则处理音频的播放或者暂停操作。

导致的结果是,第一次点击时,通过后台获取到音频地址,然后播放音频时,不能正常播放,此时audio音频是有正确值的。再次点击时,不经过ajax方法,直接处理音频的播放/暂停,此时音频可以正常播放。

 

说明原因之前,先说明一下h5页面是默认屏蔽audio自动播放方法的,必须要用户手动点击触发才能播放,这个请自行百度。出现上述情况的原因是,h5页面认为通过ajax调用的audio.play()方法不是用户手动触发,所以就给屏蔽了,使之不能正常播放,但是音频地址会正常改变。

我的解决方式是,先给audio默认一个空白的音频地址,没有声音的音频,1s左右就够了,在调用ajax时,audio.play();audio.paused();仅首次点击时这样处理即可,后续可以按照原来流程走。

这样,连续点击两次才能播放的问题就解决了。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值