1.实现效果
2.实现原理
1、wx.getBackgroundAudioManager :
获取全局唯一的背景音频管理器。 小程序切入后台,如果音频处于播放状态,可以继续播放。但是后台状态不能通过调用API操纵音频的播放状态。
从微信客户端6.7.2版本开始,若需要在小程序切后台后继续播放音频,需要在 app.json 中配置 requiredBackgroundModes 属性。开发版和体验版上可以直接生效,正式版还需通过审核。
2、onUnload和onHide事件中暂停音乐的播放。
3、onShow中调用播放事件
4、在播放结束的事件中,再次播放,以达到循环播放的效果。
3.实现代码
<image src="{{checked?'../img/stop.png':'../img/play.png'}}" class="music {{!checked && 'circle'}}" catchtap="checkMusic"></image>
<view catchtap="toNext" class="btn"> 去下一个页面</view>
page {
background-color: aliceblue;
}
.music {
width: 86rpx;
height: 86rpx;
position: absolute;
top: 108rpx;
right: 10rpx;
z-index: 99;
}
.circle {
animation: cirlce 4s linear infinite;
}
@keyframes cirlce {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(359deg);
}
}
.btn {
margin: 550rpx auto 0;
width: 625rpx;
height: 80rpx;
background: linear-gradient(90deg, #dd8449 0%, #e28e74 52%, #dbb290 100%);
border-radius: 6rpx;
font-size: 30rpx;
color: #fff;
line-height: 80rpx;
text-align: center;
position: relative;
overflow: hidden;
}
.btn:after {
content: "";
background: #999;
position: absolute;
width: 750rpx;
height: 750rpx;
left: calc(50% - 375rpx);
top: calc(50% - 375rpx);
opacity: 0;
margin: auto;
border-radius: 50%;
transform: scale(1);
transition: all 0.4s ease-in-out;
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
Page({
data: {
checked: false,
},
onShow: function () {
this.player(wx.getBackgroundAudioManager())
},
checkMusic() {
console.log(11)
this.setData({
checked: !this.data.checked
})
if (this.data.checked) {
wx.getBackgroundAudioManager().pause();
} else {
this.player(wx.getBackgroundAudioManager())
}
},
player(e) {
e.title = '苏苏的音乐'
e.src = "http://music.163.com/song/media/outer/url?id=36587407.mp3"
e.onEnded(() => {
this.player(wx.getBackgroundAudioManager())
})
},
onUnload: function () {
wx.getBackgroundAudioManager().stop();
},
onHide() {
wx.getBackgroundAudioManager().stop();
},
toNext() {
wx.navigateTo({
url: '/pages/jsCase/draw/index',
})
}
})
如果您的问题还未解决可以联系站长付费协助。
有问题可以加入技术QQ群一起交流学习
本站vip会员 请加入无忧模板网 VIP群(50604020) PS:加入时备注用户名或昵称
普通注册会员或访客 请加入无忧模板网 技术交流群(50604130)
客服微信号:15898888535
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若内容侵犯了原著者的合法权益,可联系站长删除。