|
@@ -2,7 +2,8 @@ import {
|
|
getMyActivity,
|
|
getMyActivity,
|
|
thumbsUp,
|
|
thumbsUp,
|
|
deleteActivity,
|
|
deleteActivity,
|
|
- getShareText
|
|
|
|
|
|
+ getShareText,
|
|
|
|
+ playAudioEvent
|
|
} from '~/api/activity'
|
|
} from '~/api/activity'
|
|
Page({
|
|
Page({
|
|
/**
|
|
/**
|
|
@@ -13,7 +14,13 @@ Page({
|
|
pageNo: 1,
|
|
pageNo: 1,
|
|
totalSize: 0,
|
|
totalSize: 0,
|
|
list: [],
|
|
list: [],
|
|
- uid: ''
|
|
|
|
|
|
+ uid: '',
|
|
|
|
+ playAudioId: null,
|
|
|
|
+ // 当前音频播放时长
|
|
|
|
+ playTime: '00:00',
|
|
|
|
+ endTime: '00:00',
|
|
|
|
+ vProgress: 0,
|
|
|
|
+ userAudioState: false,
|
|
},
|
|
},
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -24,6 +31,16 @@ Page({
|
|
this.setData({
|
|
this.setData({
|
|
uid: wx.getStorageSync('uid')
|
|
uid: wx.getStorageSync('uid')
|
|
})
|
|
})
|
|
|
|
+ this.innerAudioContext = wx.createInnerAudioContext();
|
|
|
|
+ this.innerAudioContext.onTimeUpdate(() => {
|
|
|
|
+ this.setDuration('playTime', this.innerAudioContext.currentTime)
|
|
|
|
+ this.setData({
|
|
|
|
+ vProgress: Math.ceil((Math.ceil(this.innerAudioContext.currentTime) / this.innerAudioContext.duration) * 100)
|
|
|
|
+ })
|
|
|
|
+ })
|
|
|
|
+ this.innerAudioContext.onEnded((res) => {
|
|
|
|
+ this.clearAudio()
|
|
|
|
+ });
|
|
},
|
|
},
|
|
async getMyActivity() {
|
|
async getMyActivity() {
|
|
let {
|
|
let {
|
|
@@ -39,7 +56,6 @@ Page({
|
|
isMy = list[0].uid == wx.getStorageSync('uid')
|
|
isMy = list[0].uid == wx.getStorageSync('uid')
|
|
}
|
|
}
|
|
this.setData({
|
|
this.setData({
|
|
- isMy,
|
|
|
|
list,
|
|
list,
|
|
totalSize
|
|
totalSize
|
|
})
|
|
})
|
|
@@ -52,6 +68,35 @@ Page({
|
|
this.getMyActivity()
|
|
this.getMyActivity()
|
|
}
|
|
}
|
|
},
|
|
},
|
|
|
|
+ async playAudio({
|
|
|
|
+ currentTarget
|
|
|
|
+ }) {
|
|
|
|
+ let item = currentTarget.dataset.item
|
|
|
|
+ if (this.data.userAudioState) {
|
|
|
|
+ if (this.data.playAudioId == item.id) {
|
|
|
|
+ return this.clearAudio()
|
|
|
|
+ }
|
|
|
|
+ this.clearAudio()
|
|
|
|
+ }
|
|
|
|
+ this.innerAudioContext.src = item.audioPath;
|
|
|
|
+ this.innerAudioContext.play();
|
|
|
|
+ this.setDuration('endTime', item.duration)
|
|
|
|
+ this.setData({
|
|
|
|
+ playAudioId: item.id,
|
|
|
|
+ userAudioState: true
|
|
|
|
+ })
|
|
|
|
+ await playAudioEvent(item.id)
|
|
|
|
+ },
|
|
|
|
+ clearAudio() {
|
|
|
|
+ this.setData({
|
|
|
|
+ playAudioId: null,
|
|
|
|
+ userAudioState: false,
|
|
|
|
+ playTime: '00:00',
|
|
|
|
+ endTime: '00:00',
|
|
|
|
+ vProgress: 0,
|
|
|
|
+ })
|
|
|
|
+ this.innerAudioContext.stop();
|
|
|
|
+ },
|
|
delete({
|
|
delete({
|
|
currentTarget
|
|
currentTarget
|
|
}) {
|
|
}) {
|
|
@@ -73,6 +118,7 @@ Page({
|
|
title: '删除成功!',
|
|
title: '删除成功!',
|
|
icon: "none"
|
|
icon: "none"
|
|
})
|
|
})
|
|
|
|
+ this.clearAudio()
|
|
}
|
|
}
|
|
}
|
|
}
|
|
})
|
|
})
|
|
@@ -94,6 +140,26 @@ Page({
|
|
wx.navigateTo({
|
|
wx.navigateTo({
|
|
url: '/pages/activityList/index',
|
|
url: '/pages/activityList/index',
|
|
})
|
|
})
|
|
|
|
+ }, // 设置时间文案
|
|
|
|
+ setDuration(label, s) {
|
|
|
|
+ let t = '';
|
|
|
|
+ s = Math.ceil(s);
|
|
|
|
+ if (s > -1) {
|
|
|
|
+ let min = Math.floor(s / 60) % 60;
|
|
|
|
+ let sec = s % 60;
|
|
|
|
+ if (min < 10) {
|
|
|
|
+ t += "0";
|
|
|
|
+ }
|
|
|
|
+ t += min + ":";
|
|
|
|
+ if (sec < 10) {
|
|
|
|
+ t += "0";
|
|
|
|
+ }
|
|
|
|
+ t += sec;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ this.setData({
|
|
|
|
+ [label]: t,
|
|
|
|
+ })
|
|
},
|
|
},
|
|
createActivityImg(imageUrl, cardReadId) {
|
|
createActivityImg(imageUrl, cardReadId) {
|
|
return new Promise(async (resolve, reject) => {
|
|
return new Promise(async (resolve, reject) => {
|
|
@@ -131,4 +197,10 @@ Page({
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
},
|
|
|
|
+ onHide() {
|
|
|
|
+ this.clearAudio()
|
|
|
|
+ },
|
|
|
|
+ onUnload() {
|
|
|
|
+ this.clearAudio()
|
|
|
|
+ }
|
|
})
|
|
})
|