微信小程序实现百度唱片

2022-05-19  本文已影响0人  5cc9c8608284

官方文档
这一节我们利用wx.getBackgroundAudioManager()这个背景音乐的api来实现一个简易百度唱片,布局如下所示:

百度唱片.png 播放时的图片.png
话不多说,直接上代码:
baidu.wxml
<view class="container">
<image class="bg-image" src="{{!playing?'http://y.gtimg.cn/music/photo_new/T002R300x300M000003rsKF44GyaSk.jpg?max_age=2592000':'/assets/baidu/timg.gif'}}"></image>
<view class="image-container">
    <image src="/assets/baidu/front10.png" bindtap="seek" data-step='-10'></image>
    <image src="/assets/baidu/{{playing?'pause':'play'}}.png" bindtap="onAudioTap"></image>
    <image src="/assets/baidu/stop.png" bindtap="stop"></image>
    <image src="/assets/baidu/next10.png" bindtap="seek" data-step='10'></image>
</view>
</view>

baidu.wxss

/* pages/baidu/baidu.wxss */
.bg-image{
    width: 350rpx;
    height: 350rpx;
    margin-bottom: 100rpx;
}
.image-container image{
    width: 64rpx;
    height: 64rpx;
    margin: 30rpx;
}

baidu.js

// pages/baidu/baidu.js
let BackgroundAudioManager=wx.getBackgroundAudioManager();//获取背景音乐的上下文对象
Page({

    /**
     * 页面的初始数据
     */
    data: {
        isHidden:true,
        playing:false,
        music:{
            src:'http://mpge.5nd.com/2018/2018-5-10/85111/1.mp3',
            title:'哑巴'
        }
    },
    /**
     * 跳转到某个位置
     */
    seek(e){
        let step=parseInt(e.currentTarget.dataset.step);
        let duration=BackgroundAudioManager.duration;//获取当前音乐的总时长
        let currentPosition=BackgroundAudioManager.currentTime;//获取当前播放的位置
        let position=currentPosition+step;//计算前进或者后退以后的位置
        if(this.data.playing){
            if(position>duration){//如果计算出来的位置大于音乐的总时长,就让position等于总时长
                position=duration
            }else if(position<0){//如果计算出来的位置小于0,就让position等于0
                position=0
            }
        BackgroundAudioManager.seek(position);
        wx.showToast({
          title: `${position}`,
        })
        }else{
            wx.showToast({
              title: '未播放音乐',
            })
        }
    },
    /** 
     * 点击播放或者暂停
    */
    onAudioTap(){
        if(this.data.playing){
            // 正在播放,暂停
        BackgroundAudioManager.pause()
        this.setData({
            playing:false
        })
        }else{
            // 播放
            this.play()
            this.setData({
                playing:true
            })
        }
    },
    /**
     * 停止
     */
    stop(){
        BackgroundAudioManager.stop()
        //切换显示哪张图片图片
        this.setData({
            playing:false
        })
    },
    /**
     * 播放
     */
    play(){
        BackgroundAudioManager.src=this.data.music.src;//设置背景音乐的src
        BackgroundAudioManager.title='哑巴';//title为必填项
        BackgroundAudioManager.play()
        this.setData({
            playing:true
        })
    },
})

今天的分享就到这里,兴趣是最好的老师,加油

上一篇 下一篇

猜你喜欢

热点阅读