jsaudio缓冲区大小设置

JavaScript012

jsaudio缓冲区大小设置,第1张

缓冲区大小(Buffer Size)是JSaudio框架中常用的一种参数设置。其实,它也是所有Web音频API都必须面对的一个有效解决方案,因为它有助于提高声音的播放流畅度(Smoothness)。

缓冲区的大小是以毫秒(Millisecond)为单位的。设置更大的缓冲区,能够让 web audio API 更好的去理解和处理你的音乐文件,从而使得音乐播放更加平滑顺畅。另外,设置较小的缓冲区可以加快音乐文件的加载速度,但是会导致声音变得不够流畅。

为了获得最佳的播放效果,JSaudio缓冲区大小一般被设置为200ms到500ms之间。此外,这个缓冲区大小也要根据你要播放的文件大小和类型来进行调整。

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()