有时在案例中我们会需要使用录音的功能,今天就讲一讲在ivx中录音是如何实现的吧。
1.首先录音是使用微信的录音功能,因此案例中需要添加一个微信公众号组件,另外当点击按钮要开始录音时,我们也要先判断案例的运行环境是否是在微信浏览器的环境下。不是的话需要提示用户,如果是则让微信公众号开始录音,然后重置触发器的状态,再将数值变量“状态”置1,播放触发器。


上一步中有一个将“状态”置1的操作,这个数值变量的作用是显示不同页面的,其初始值是0。我们的录音界面是用了一个横幅展示的,其可见属性进行了数据绑定,只有当“状态”不等于0时横幅才显示,而且录音界面下有两种状态,通过if容器进行判断显示,当“状态”等于1时显示录音中的界面,当“状态”等于2时显示录音结束界面。


由于微信的限制录音的时长不能超过60s,所以我们需要对当前录音的时长做一个记录,用到的组件就是触发器,其属性里设置了时间间隔为1s,即每过1s触发器播放一次。




当然还有一种情况就是,在60s之前用户主动结束录音,这里点击事件下的动作与触发器中是很类似的。


无论是以哪种方式结束录音,我们都会将音频的本地ID存储到数值变量“本地ID”中,所以当我们点击播放时,就将“本地ID”传给微信公众号令其播放录音即可。

要注意的是本地ID是用来播放本地的录音文件,音频URL是我们上传到微信服务器的那份音频的地址。如果是要转发案例让好友能够听到的话的话就要把音频URL添加到案例的URL参数里一起转发给好友,或者像demo中是把音频URL上传到ivx的数据库中的,那么也可以先获取音频URL在数据库中的数据ID,将数据ID嵌入分享链接的URL参数,好友打开分享链接获取到数据ID,再去数据库中获取对应的音频URL地址并加载。