Speaking的优化流程
1、用户反馈:speaking的录音评测过程出现等待卡顿现象,
2、speaking流程:
播放单词-ding开始-开始录音-结束录音-ding结束-播放原声-评测结果
3、原来代码逻辑:
播放单词开始起,3秒开始录音 ,3s 后结束录音,结束录音开始播放原声,播放原声3s ,之后收到反馈结果,tryagain重复这个流程
4、优化流程:
(1)优化第一版本:
获取的当前播放单词的时间,举例单词时间为1.8秒,采取向上取整的方式取2s ,2s后开始录音,录音时长为当前单词的时长+1s,录音结束,开始播放原声,播放原声时长为当前单词的时长+1s,,之后收到反馈结果,tryagain重复这个流程
第一版本把握时间控制,都是以当前单词的时间 动态推进流程
(2) 优化第二版:
在第一版的基础上,发现ios 有兼容问题,修改为各个动作监听完毕后开始下一个动作,采用的方法是
animation.on('stop', this.onStop, this);该方法使用后发现,播放动画监听结束时,该动画才播放到正常流程的一半,并非理想中监听到播放完毕。
(3)优化第三版:
在第二版的基础上,监听函数效果不好,回归到动态获取单词时间的方案上,手动控制动画的播放速效率,区分ios和安卓两个系统,但是ios 在手动控制速率上效果不好,
(4)优化第四版:
镖哥的接入,在第二版的基础上,修改为各个动作监听完毕后开始下一个动作,采用的方法是
animation.on('finished', this.onStop, this),能够在动画播放完毕后监听到。这种监听事件回调的方式,判断接下来动作的执行,ios 兼容问题解决。
5、反思:
(1)、在录音时长和播放单词时长时,应该动态获取,不能直接固定时间后开始录音和播放声音,流畅性差,会给用户等待卡顿的不友好体验
(2)、对于监听事件,对于cocos 文档没有熟看,导致用错方法,耽误开发时间,
6、接下来要做的事:
(1)、产品迭代,从用户的角度去感受,用技术去改善用户的使用体验,
(2)、增加自身的学习能力,过程也要不断提高效率,总结问题解决思路,持续改善。