微信小程序有旋转动画效果的音乐组件
在微信开发中,写过的一个简单的音乐播放组件,记录下。 music? 属性 代码
初始化音乐 首先,在properties中接收页面传来的音乐文件地址, observer{
} } 这里的处理是,一旦接收到页面传来的 music 地址,就初始化音乐: if(dataaudioCtxdestroy() var audioCtx = wxcreateInnerAudioContext() audioCtx audioCtx audioStatus =='1'autoplay true audioCtxloop true } audioStatus 用来记录音乐播放状态,在data中默认设置为1: wxml文件里,只用一个 标签:
src"{{ icon }}" 其中, icon 在组件ready()时赋值成播放状态的icon:
} 音乐旋转效果 音乐播放时的旋转效果,是用css动画实现的,wxss文件如下: z-index99; /* 旋转class */ animation musicrotate 4s linear infinite; @keyframesrotate 0%{ }
} 当 rotate 为true时,使 musicClass 的值为 music-on,就能实现旋转了。 当然, musicClass 需要用 this.setData 的方式来切换值。 爆丑照: 音乐控制 手动切换 手动点击时,用取反的逻辑控制音乐的播放和暂停: audioStatus({
musicClass'' pause() }elseiconOn}) 其它情况
// 否则,如果当发生分享页面行为并返回时,音乐不会自动播放 && ({ }) 这两个方法分别在页面中的 onShow 和 onHide 中调用,调用方式就是父组件获取到子组件实例对象:
最后,在组件的detached中也调用一下 onHide 方法: detached()
使用? |