也没啥。。。就设计师要求按照他的界面来画。。所以就没办法了
wxml代码:
<!--当前为停止状态 -->
<view style="width:250rpx;height:250rpx;left:250rpx;top:12rpx;position:relative;" wx:if="{{isplay==false}}" bindtap='play'><image style="width:100%;height:100%;border-radius:50%;" src='http://y.gtimg.cn/music/photo_new/T002R300x300M000003rsKF44GyaSk.jpg?max_age=2592000' /><image src='../image/play.png' style="width:100rpx;height:100rpx;position:absolute;left:75rpx;top:75rpx;"></image>
</view>
<!--当前为播放状态 -->
<view style="width:250rpx;height:250rpx;left:250rpx;top:12rpx;position:relative;" wx:if="{{isplay==true}}" bindtap='stop'><image style="width:100%;height:100%;border-radius:50%;" src='http://y.gtimg.cn/music/photo_new/T002R300x300M000003rsKF44GyaSk.jpg?max_age=2592000' /><image src='../image/stop.png' style="width:100rpx;height:100rpx;position:absolute;left:75rpx;top:75rpx;"></image>
</view>
<slider style="width:500rpx;margin-left:125rpx;" max='{{maxlength}}' min="0" step="1" value="{{value}}" bindchanging="changing" bindchange="change"></slider>
js代码:
const myaudio = wx.createInnerAudioContext();
var myintervi1;;
Page({data: {isplay: false,//是否播放haslength: false,//当前是否有音乐的长度maxlength: 0,value: 0,//当前播放到了哪儿},onShow: function () {myaudio.src = "http://ws.stream.qqmusic.qq.com/M500001VfvsJ21xFqb.mp3?guid=ffffffff82def4af4b12b3cd9337d5e7&uin=346897220&vkey=6292F51E1E384E06DCBDC9AB7C49FD713D632D313AC4858BACB8DDD29067D3C601481D36E62053BF8DFEAF74C0A5CCFADD6471160CAF3E6A&fromtag=46"this.getmusiclength();},//播放play: function () {const that = this;myaudio.play();//开始循环设置时间this.setData({ isplay: true });myintervi1 = setInterval(function () {var a = that.data.value;a++;that.setData({ value: a })}, 1000);},// 停止stop: function () {myaudio.pause();this.setData({ isplay: false });},//获取音乐的长度getmusiclength: function () {const that = this;console.log(myaudio.duration);if (myaudio.duration == 0) {setTimeout(function () {that.data.haslength = false;that.getmusiclength();}, 100);}else {var a = Math.ceil(myaudio.duration);that.setData({haslength: true,maxlength: a,value: 0});}},//拖动 结束后重新开始播放change: function (e) {const that = this;// 清除定时器clearInterval(myintervi1);this.setData({ value: e.detail.value });myaudio.seek(e.detail.value);myaudio.play();//累加刷新页面myintervi1 = setInterval(function () {var a = that.data.value;console.log(a);a++;that.setData({ value: a })}, 1000);},changing: function (e) {myaudio.pause();}})
差不多就这么点吧。也就是个雏形