js解决音频audio在IOS系统下无法自动播放问题

JavaScript024

js解决音频audio在IOS系统下无法自动播放问题,第1张

ios中使用audio,日常踩坑

必须!!!点击后才调用xxx.play()这个方法

但是我们音频链接数据如果是网络请求而来的,那我们可以这样做:

1.在无播放链接的情况下先调用一次xxx.play(),然后暂停xxx.pause()

2.请求到数据以后,替换链接

3.判断readyState的值

0 = HAVE_NOTHING - 没有关于音频是否就绪的信息

1 = HAVE_METADATA - 关于音频就绪的元数据

2 = HAVE_CURRENT_DATA - 关于当前播放位置的数据是可用的,但没有足够的数据来播放下一帧/毫秒

3 = HAVE_FUTURE_DATA - 当前及至少下一帧的数据是可用的

4 = HAVE_ENOUGH_DATA - 可用数据足以开始播放

4.如果readyState===4,调用xxx.currentTime = 0 初始化

5.最后调用xxx.play()

感谢 https://blog.csdn.net/cmyh100/article/details/80695271

给我灵感

我的做法是: 在获取到音频链接前

先执行一次play 然后暂停,最后在获取到音频地址后 将音频时间设置为0 最后重新调用paly()

纯前端解码、播放、录音、编码 AMR 音频,无须服务器支持,基于 [amr.js]

注意:由于使用了 amr.js 做编码和解码,因此 js 文件(压缩后,未 gzip)接近 500 KB,使用前请考虑。

使用时引用

html部分

初始化对象