小程序音频API挖坑完整手册
最近公司推出了一个类似小打卡的小程序,是基于WEPY开发的。
所有其他功能点都可以。录音和音频播放的功能点踩在各种莫名的坑上,社区里很多人都在提问,以这篇文章为特色祭天。
该产品的大致界面如下
录音功能
相关
.除了较低版本样式的兼容性,没有漏洞。
JS 交互逻辑
录音坑之一
部分手机无法上传录音文件。
原因:服务器端上传文件的大小限制。
解决方案:样品取样率、编码取样率都有相应的要求。具体看文档,尽量调整中低音质。公司有钱无人问津,顶级服务器运行。
音质越高,文件越大,相同参数的ios系统录制文件越大。
常量记录器管理器=WEpy。GetRecorder Manager()Const Options={ duration : 600000,//是的,10分钟是真的.采样率3360 8000,编码比特率3360 2000,}
录音坑之二
部分用户录制后无法试听。
原因:用户拒绝授权,录音代码未验证(不严谨);苹果手机用户开启了静音功能(也就是左上角的开关,真的是无力吐槽);内存不足,打开蓝牙;解决方法:录音前检查麦克风授权,未经授权不要录音。代码如下
设置播放实例obeyMuteSwitch的属性(目前只支持ios).
第三,不知道。一般建议重启。真是太棒了。
.methods={//开始录制录制(){wepy。getsetting()。然后((RES)={if(!RES . authsetting[' scope . record ']){ wepy . authorize({ scope : ' scope . record ' })。然后(()={ recordermanager . start(options)This . starttimer()This。$ apply ()},(e)={wepy。open setting()})} else { recorder manager。开始(选项)这个。启动定时器()这个。$ apply ()}}},}.
录音坑之三
录制时间不允许。
原因:手机卡住了,延迟导致部分用户的录制与定时器不同步(你永远不知道手机用户在用什么,我只能说是蓝绿色的工厂坑)
解决方法:调用onStop方法回调录制时间。理论上最长时间只有600s,但后台录制时间超过1万s,目前不知道为什么,解决吧。
onload(){ Recorder manager . onstop(({ tempfile path,duration })={/这样做。duration=parsent(duration/1000)}//Timer Starttimer(){/做点什么}
录音坑之四
无录音
原因:由于自动锁屏功能、来电等外部原因导致录制中断。
解决方法:提醒用户保持小程序运行;按住录音。但是,10分钟,我怕用户的手会抽筋;Wx.setKeepScreenOn()接口。
相关应用编程接口
音频播放功能
音频组件不好用?我们的UI是浮动的,定制好很多~
游戏坑相对较少。建议页面只注册一个播放器,动态修改音源,相关事件只在页面onLoad注册。
*音源动态修改,无法获取当前音源时长,异步!
const innerAudioContext=wepy . createinneraudiocontext().onLoad ({classId,date }){ inneraudioncontext . onended(()={//做点什么})inneraudioncontext . onplay(()={ })inneraudioncontext . ontimeupdate(()={//更新进度条}).}//Timer Starttimer(){/做点什么}
JS 交互逻辑
听不到(我真的觉得没什么问题),需要主动触发canpaly的状态。
原因:同上,ios用户自己开启静音模式;网络原因,进度条随定时器更新,文件没有缓存到可播放状态,导致进度条播放不同步;Https,https.有些ios不能播放https协议的资源。解决方案:进度条在onTimeUpdate方法中更新。资源使用http。
没有客户服务的运维不是好的发展。手动MMP~
版权声明:小程序音频API挖坑完整手册是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。