351 lines
11 KiB
JavaScript
351 lines
11 KiB
JavaScript
const app = getApp()
|
|
var innerAudioContext = wx.createInnerAudioContext()
|
|
Page({
|
|
data: {
|
|
nameTxt: '名片',
|
|
dataList: [],
|
|
curIndex: 0, //用来记录请求次数
|
|
speedStep: 5, //快进快退秒数
|
|
waitFlag: false,
|
|
},
|
|
onLoad(options) {
|
|
this.doLogin()
|
|
},
|
|
// 登录
|
|
doLogin() {
|
|
var self = this;
|
|
wx.showLoading({
|
|
title: '加载中...',
|
|
})
|
|
wx.login({
|
|
success(res) {
|
|
app.http.post(app.urls.wxLogin, {
|
|
data: {
|
|
jsCode: res.code
|
|
}
|
|
})
|
|
.then(res => {
|
|
wx.hideLoading({})
|
|
var token = res.data.data.split('_')[0]
|
|
wx.setStorageSync('token', token)
|
|
wx.setStorageSync('bindPhone', res.data.data.split('_')[1])
|
|
app.globalData.token = token
|
|
self.getMainColumn()
|
|
})
|
|
.catch(err => {
|
|
wx.hideLoading({})
|
|
})
|
|
}
|
|
})
|
|
},
|
|
//获取首页展示的栏目
|
|
getMainColumn() {
|
|
var _self = this
|
|
app.http.get(app.urls.getMainColumn, {
|
|
header: {
|
|
token: app.globalData.token
|
|
}
|
|
})
|
|
.then(res => {
|
|
wx.showLoading({
|
|
title: '加载中...',
|
|
})
|
|
_self.getMainMoment(res.data, 0)
|
|
})
|
|
.catch(err => {
|
|
wx.stopPullDownRefresh({})
|
|
})
|
|
},
|
|
getMainMoment(datas, index) {
|
|
var _self = this
|
|
var count = datas.length
|
|
if (index < count) {
|
|
app.http.get(app.urls.getMainMoment.format({
|
|
configColumnId: datas[_self.data.curIndex].configColumnId
|
|
}), {
|
|
header: {
|
|
token: app.globalData.token
|
|
}
|
|
})
|
|
.then(res => {
|
|
if (res.data.length > 0) {
|
|
var tempItem = {
|
|
name: datas[_self.data.curIndex].configColumnName,
|
|
list: res.data
|
|
}
|
|
_self.data.dataList.push(tempItem)
|
|
}
|
|
_self.setData({
|
|
curIndex: ++_self.data.curIndex
|
|
})
|
|
_self.getMainMoment(datas, _self.data.curIndex)
|
|
})
|
|
.catch(err => {
|
|
_self.setData({
|
|
curIndex: ++_self.data.curIndex
|
|
})
|
|
_self.getMainMoment(datas, _self.data.curIndex)
|
|
})
|
|
} else {
|
|
wx.hideLoading({})
|
|
wx.stopPullDownRefresh({})
|
|
_self.buildMainData()
|
|
}
|
|
},
|
|
//构建主页显示数据
|
|
buildMainData() {
|
|
var _self = this
|
|
_self.data.dataList.forEach(it => {
|
|
it.list.forEach(item => {
|
|
item.list.forEach(iem => {
|
|
switch (iem.dataType) {
|
|
case '2': //图片
|
|
var items = iem.value.split(',')
|
|
var tempList = []
|
|
items.forEach(item => {
|
|
var tempItem = {
|
|
id: item,
|
|
path: app.urls.baseImgUrl + item,
|
|
}
|
|
tempList.push(tempItem)
|
|
})
|
|
iem.valueList = tempList
|
|
break
|
|
case '3': //音频
|
|
var items = iem.value.split(',')
|
|
var tempList = []
|
|
items.forEach(item => {
|
|
var tempItem = {
|
|
id: item, //id
|
|
path: app.urls.baseImgUrl + item, //地址
|
|
isPlay: false, //是否播放中
|
|
duration: 100000, //时长
|
|
curDuration: 0,
|
|
curDurationStr: '00:00',
|
|
totalDurationStr: '00:00'
|
|
}
|
|
tempList.push(tempItem)
|
|
})
|
|
iem.valueList = tempList
|
|
break
|
|
case '4': //视频
|
|
var items = iem.value.split(',')
|
|
var tempList = []
|
|
items.forEach(item => {
|
|
var tempItem = {
|
|
id: item,
|
|
path: app.urls.baseImgUrl + item,
|
|
imgPath: '/images/ic_temp.png'
|
|
}
|
|
tempList.push(tempItem)
|
|
})
|
|
iem.valueList = tempList
|
|
break
|
|
case '6':
|
|
var items = iem.value.split('-')
|
|
var tempList = []
|
|
items.forEach(item => {
|
|
var latlng = item.split(',')
|
|
var tempItem = {
|
|
name: '',
|
|
address: '',
|
|
latitude: latlng[0],
|
|
longitude: latlng[1],
|
|
}
|
|
tempList.push(tempItem)
|
|
})
|
|
iem.valueList = tempList
|
|
break
|
|
}
|
|
})
|
|
})
|
|
})
|
|
_self.setData({
|
|
curIndex: 0,
|
|
dataList: _self.data.dataList
|
|
})
|
|
console.log(_self.data.dataList)
|
|
},
|
|
onPullDownRefresh() {
|
|
this.setData({
|
|
dataList: []
|
|
})
|
|
this.getMainColumn()
|
|
},
|
|
//预览图片
|
|
viewImg(e) {
|
|
wx.previewImage({
|
|
urls: [e.currentTarget.dataset.url],
|
|
})
|
|
},
|
|
//预览视频
|
|
viewVideo(e) {
|
|
var url = e.currentTarget.dataset.url
|
|
wx.previewMedia({
|
|
sources: [{
|
|
url: url,
|
|
type: 'video'
|
|
}],
|
|
})
|
|
},
|
|
play(e) {
|
|
//进行播放
|
|
const _self = this
|
|
const index = e.currentTarget.dataset.index
|
|
const idx = e.currentTarget.dataset.idx
|
|
const ix = e.currentTarget.dataset.i
|
|
const a = e.currentTarget.dataset.a
|
|
var audio = e.currentTarget.dataset.item
|
|
//先需要停止其他录音文件的播放
|
|
_self.data.dataList.forEach(it => {
|
|
it.list.forEach(item => {
|
|
item.list.forEach(ix => {
|
|
if (ix.dataType == '3') {
|
|
if (ix.valueList) {
|
|
ix.valueList.forEach(ii => {
|
|
if (ii.isPlay) {
|
|
innerAudioContext.stop()
|
|
}
|
|
ii.isPlay = false
|
|
ii.curDuration = 0
|
|
ii.curDuationStr = '00:00'
|
|
})
|
|
}
|
|
}
|
|
})
|
|
})
|
|
})
|
|
if (!audio.isPlay) {
|
|
innerAudioContext = wx.createInnerAudioContext()
|
|
innerAudioContext.src = _self.data.dataList[index].list[idx].list[ix].valueList[a].path + '.mp3'
|
|
innerAudioContext.autoplay = true
|
|
console.log(_self.data.dataList[index].list[idx].list[ix].valueList[a].path)
|
|
} else {
|
|
innerAudioContext.stop()
|
|
}
|
|
|
|
|
|
innerAudioContext.onPlay(() => {
|
|
console.log('onPlay')
|
|
_self.data.dataList[index].list[idx].list[ix].valueList[a]['isPlay'] = true
|
|
_self.setData({
|
|
dataList: _self.data.dataList
|
|
})
|
|
});
|
|
|
|
innerAudioContext.onCanplay((res) => {
|
|
// if (_self.data.waitFlag) {
|
|
// innerAudioContext.play()
|
|
// _self.setData({
|
|
// waitFlag: false
|
|
// })
|
|
// }
|
|
})
|
|
innerAudioContext.onStop((res) => {
|
|
console.log('停止播放')
|
|
_self.data.dataList[index].list[idx].list[ix].valueList[a].isPlay = false
|
|
_self.data.dataList[index].list[idx].list[ix].valueList[a].curDuration = 0
|
|
_self.data.dataList[index].list[idx].list[ix].valueList[a].curDurationStr = '00:00'
|
|
_self.setData({
|
|
dataList: _self.data.dataList,
|
|
})
|
|
innerAudioContext.destroy()
|
|
})
|
|
innerAudioContext.onEnded((res) => {
|
|
console.log(res)
|
|
console.log('播放完毕')
|
|
_self.data.dataList[index].list[idx].list[ix].valueList[a].isPlay = false
|
|
_self.data.dataList[index].list[idx].list[ix].valueList[a].curDuration = 0
|
|
_self.data.dataList[index].list[idx].list[ix].valueList[a].curDurationStr = '00:00'
|
|
_self.setData({
|
|
dataList: _self.data.dataList,
|
|
})
|
|
innerAudioContext.destroy()
|
|
})
|
|
innerAudioContext.onError((res) => {
|
|
console.log('播放错误')
|
|
console.log(res)
|
|
_self.data.dataList[index].list[idx].list[ix].valueList[a].isPlay = false
|
|
_self.data.dataList[index].list[idx].list[ix].valueList[a].curDuration = 0
|
|
_self.data.dataList[index].list[idx].list[ix].valueList[a].curDurationStr = '00:00'
|
|
_self.setData({
|
|
dataList: _self.data.dataList,
|
|
})
|
|
innerAudioContext.destroy()
|
|
})
|
|
innerAudioContext.onSeeking(() => {
|
|
// console.log(innerAudioContext.currentTime)
|
|
})
|
|
innerAudioContext.onWaiting(() => {
|
|
// console.log('onWaiting')
|
|
// innerAudioContext.pause()
|
|
// _self.setData({
|
|
// waitFlag: true
|
|
// })
|
|
})
|
|
innerAudioContext.onTimeUpdate(() => {
|
|
if (innerAudioContext.duration != Infinity) {
|
|
_self.data.dataList[index].list[idx].list[ix].valueList[a].curDuration = parseInt(innerAudioContext.currentTime)
|
|
_self.data.dataList[index].list[idx].list[ix].valueList[a].duration = parseInt(innerAudioContext.duration)
|
|
var curM = parseInt(innerAudioContext.currentTime / 60) //分钟
|
|
var curS = parseInt(innerAudioContext.currentTime % 60) //秒
|
|
var tM = parseInt(innerAudioContext.duration / 60) //分钟
|
|
var tS = parseInt(innerAudioContext.duration % 60) //秒
|
|
var curMStr = curM > 9 ? curM : '0' + curM
|
|
var curSStr = curS > 9 ? curS : '0' + curS
|
|
var totalMStr = tM > 9 ? tM : '0' + tM
|
|
var totalSStr = +tS > 9 ? tS : '0' + tS
|
|
_self.data.dataList[index].list[idx].list[ix].valueList[a].curDurationStr = curMStr + ':' + curSStr
|
|
_self.data.dataList[index].list[idx].list[ix].valueList[a].totalDurationStr = totalMStr + ':' + totalSStr
|
|
_self.setData({
|
|
dataList: _self.data.dataList
|
|
})
|
|
}
|
|
})
|
|
},
|
|
//倒退5秒
|
|
rewind(e) {
|
|
var _self = this
|
|
var index = e.currentTarget.dataset.index
|
|
var item = e.currentTarget.dataset.item
|
|
var idx = e.currentTarget.dataset.idx
|
|
var a = e.currentTarget.dataset.a
|
|
var ix = e.currentTarget.dataset.i
|
|
if (item.isPlay) {
|
|
_self.data.dataList[index].list[idx].list[ix].valueList[a].curDuration = _self.data.dataList[index].list[idx].list[ix].valueList[a].curDuration - _self.data.speedStep
|
|
innerAudioContext.seek(_self.data.dataList[index].list[idx].list[ix].valueList[a].curDuration)
|
|
_self.setData({
|
|
dataList: _self.data.dataList
|
|
})
|
|
}
|
|
|
|
},
|
|
//快进5秒
|
|
speed(e) {
|
|
var _self = this
|
|
var index = e.currentTarget.dataset.index
|
|
var item = e.currentTarget.dataset.item
|
|
var idx = e.currentTarget.dataset.idx
|
|
var a = e.currentTarget.dataset.a
|
|
var ix = e.currentTarget.dataset.i
|
|
if (item.isPlay) {
|
|
_self.data.dataList[index].list[idx].list[ix].valueList[a].curDuration = _self.data.dataList[index].list[idx].list[ix].valueList[a].curDuration + _self.data.speedStep
|
|
innerAudioContext.seek(_self.data.dataList[index].list[idx].list[ix].valueList[a].curDuration)
|
|
_self.setData({
|
|
dataList: _self.data.dataList
|
|
})
|
|
}
|
|
},
|
|
slider4change(e) {
|
|
var index = e.currentTarget.dataset.index
|
|
var item = e.currentTarget.dataset.item
|
|
if (item.isPlay) {
|
|
innerAudioContext.seek(e.detail.value)
|
|
}
|
|
},
|
|
testPlay() {
|
|
innerAudioContext = wx.createInnerAudioContext()
|
|
innerAudioContext.src = 'http://192.168.0.115:8091/systemcard/route/file/download/true/aae9bede-3499-4b63-8ee3-75a5ae390335'
|
|
innerAudioContext.autoplay = true
|
|
}
|
|
}) |