2017.02.05
- 计划
- 修改sss后台管理的页面,调整接口返回控制方式。
- 小程序实现仿音乐播放进行音频控制。
- 估算hM工作量
- 探讨小程序仿qqMusic案例
- 月计划
- 实际完成
- 修改sss后台管理的页面,调整接口返回控制方式。
- 小程序实现仿音乐播放进行音频控制 :audio组件+旋转动画+进度控制,完成但未完善。
- 总结
- 小程序audio组件的音频与音频播放控制API
wx.getBackgroundAudioPlayerState(OBJECT)
不同,当audio的音频进行播放时,API get到的数据显示status:2 (没有音乐在播放)。API获取的背景音乐是在调用wx.playBackgroundAudio(OBJECT)
接口的前提下才能获取到的。- 动画旋转的度数已定。模仿唱片影碟播放时旋转动画:当音乐播放时,海报图片跟着音乐进行旋转。在看动画Demo时,用rotate可以将内容进行旋转。但是,一直旋转,从0deg旋转到360deg,转完之后就会停止。若需要继续再转360deg,就要从360deg旋转到(360*2)deg···如此下去。就可以配合音乐播放而旋转唱片。
- 因音乐会有播放和暂停等状态,所以希望动画随音乐状态改变。audio组件的
bindtimeupdate
事件(当播放进度改变时触发 timeupdate 事件,detail = {currentTime, duration})。把动画旋转写在update事件内,旋转角度随currentTime改变而改变,就能实现动画随音乐播放而旋转、随音乐停止而停止转动。注意的是,对动画duration
的控制是保证旋转的流畅度,我用的是500毫秒。- 进度播放,用slider模拟音乐播放进度条。进度条的控制也是在
bindtimeupdate
事件内进行更改的,但是手动改变进度从而改变音乐播放位置的效果有时导致会崩溃。也许与音频的下载进度有关,未下载的音频段无法播放导致的,但是audio组件并没有任何属性表示音频的下载进度。