228 lines
5.3 KiB
JavaScript
228 lines
5.3 KiB
JavaScript
// packageA/member/course/VoiceDetail/VoiceDetail.js
|
|
var app = getApp();
|
|
let innerAudioContext = null;
|
|
Page({
|
|
|
|
/**
|
|
* 页面的初始数据
|
|
*/
|
|
data: {
|
|
stop1: "https://mini-app-img-1251768088.cos.ap-guangzhou.myqcloud.com/stop1.png",
|
|
play1: "https://mini-app-img-1251768088.cos.ap-guangzhou.myqcloud.com/play1.png",
|
|
bfstatus: false,
|
|
currentTime: "",
|
|
slmin: "",
|
|
valueSlmin: 0,
|
|
audio_length: 0,
|
|
|
|
article_id: '',
|
|
dataInfo: {
|
|
audio_link: ''
|
|
},
|
|
// innerAudioContext: null,
|
|
isPlay: false,
|
|
// 是否有权限看
|
|
isShow: 1,
|
|
codeUrl: ''
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面加载
|
|
*/
|
|
onLoad: function(options) {
|
|
innerAudioContext = wx.createInnerAudioContext();
|
|
if (options.article_id) {
|
|
this.setData({
|
|
article_id: options.article_id
|
|
});
|
|
}
|
|
this.getData();
|
|
this.getQrCode();
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面初次渲染完成
|
|
*/
|
|
onReady: function() {
|
|
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面显示
|
|
*/
|
|
onShow: function() {
|
|
this.init();
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面隐藏
|
|
*/
|
|
onHide: function() {
|
|
innerAudioContext.stop();
|
|
innerAudioContext.destroy();
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面卸载
|
|
*/
|
|
onUnload: function() {
|
|
innerAudioContext.stop();
|
|
innerAudioContext.destroy();
|
|
},
|
|
|
|
/**
|
|
* 页面相关事件处理函数--监听用户下拉动作
|
|
*/
|
|
onPullDownRefresh: function() {
|
|
|
|
},
|
|
|
|
/**
|
|
* 页面上拉触底事件的处理函数
|
|
*/
|
|
onReachBottom: function() {
|
|
|
|
},
|
|
|
|
/**
|
|
* 用户点击右上角分享
|
|
*/
|
|
onShareAppMessage: function() {
|
|
|
|
},
|
|
audioPlay() {
|
|
if(this.data.isPlay) {
|
|
this.data.isPlay = false;
|
|
this.innerAudioContext.pause();
|
|
}else {
|
|
this.data.isPlay = true;
|
|
this.innerAudioContext.play();
|
|
}
|
|
},
|
|
|
|
//获取数据
|
|
getData() {
|
|
let that = this;
|
|
let urlStr = app.getNetAddresss("plugin.article.api.article.get-article");
|
|
urlStr += '&article_id=' + this.data.article_id;
|
|
urlStr += '&share_uid=';
|
|
app._getNetWork({
|
|
url: urlStr,
|
|
success: (resdata)=> {
|
|
var res = resdata.data;
|
|
if (res.result == 1) {
|
|
res.data.audio_link = decodeURIComponent(res.data.audio_link);
|
|
that.setData({
|
|
dataInfo: res.data,
|
|
});
|
|
innerAudioContext.src = encodeURI(this.data.dataInfo.audio_link);
|
|
|
|
// this.innerAudioContext = wx.createAudioContext("myAudio");
|
|
// this.innerAudioContext.setSrc(decodeURIComponent(res.data.audio_link))
|
|
wx.setNavigationBarTitle({
|
|
title: that.data.dataInfo.title ? that.data.dataInfo.title : ''
|
|
});
|
|
} else {
|
|
wx.navigateBack({
|
|
delta: 1
|
|
});
|
|
that.setData({
|
|
isShow: 0
|
|
});
|
|
wx.showToast({
|
|
title: res.msg,
|
|
icon: 'none',
|
|
duration: 2000
|
|
});
|
|
}
|
|
},
|
|
fail: function(res) {
|
|
console.log(res);
|
|
}
|
|
});
|
|
},
|
|
tapbf(e) {
|
|
if(this.data.bfstatus) {
|
|
innerAudioContext.pause();
|
|
}else {
|
|
innerAudioContext.src = encodeURI(this.data.dataInfo.audio_link);
|
|
innerAudioContext.play();
|
|
}
|
|
this.setData({
|
|
bfstatus: !this.data.bfstatus,
|
|
});
|
|
},
|
|
init() {
|
|
innerAudioContext.onCanplay(() => {});
|
|
innerAudioContext.onPlay(() => {
|
|
console.log("开始播放");
|
|
console.log(innerAudioContext.duration);
|
|
this.setData({
|
|
currentTime: this.realFormatSecond(innerAudioContext.duration),
|
|
slmin: "0:00:00",
|
|
});
|
|
});
|
|
innerAudioContext.onTimeUpdate(() => {
|
|
setTimeout(() => {
|
|
let smun = (innerAudioContext.currentTime / innerAudioContext.duration) * 100;
|
|
var valueSlmin = parseInt(smun);
|
|
// console.log(smun);
|
|
this.setData({
|
|
currentTime: this.realFormatSecond(innerAudioContext.duration),
|
|
slmin: this.realFormatSecond(innerAudioContext.currentTime),
|
|
valueSlmin: valueSlmin,
|
|
audio_length: innerAudioContext.duration,
|
|
});
|
|
}, 1000);
|
|
});
|
|
innerAudioContext.onError((res) => {
|
|
wx.showToast({
|
|
title: "播放错误",
|
|
icon: "none",
|
|
});
|
|
});
|
|
},
|
|
sildein(e) {
|
|
var setvalue = e.detail.value / 100;
|
|
var long = this.data.audio_length * setvalue;
|
|
console.log(long, setvalue);
|
|
innerAudioContext.seek(long);
|
|
},
|
|
realFormatSecond(second) {
|
|
var secondType = typeof second;
|
|
|
|
if (secondType === "number" || secondType === "string") {
|
|
second = parseInt(second);
|
|
|
|
var hours = Math.floor(second / 3600);
|
|
second = second - hours * 3600;
|
|
var mimute = Math.floor(second / 60);
|
|
second = second - mimute * 60;
|
|
|
|
return hours + ":" + ("0" + mimute).slice(-2) + ":" + ("0" + second).slice(-2);
|
|
} else {
|
|
return "0:00:00";
|
|
}
|
|
},
|
|
getQrCode() {
|
|
let that = this;
|
|
let urlStr = app.getNetAddresss("member.member.getArticleQr");
|
|
app._getNetWork({
|
|
url: urlStr,
|
|
success: function(resdata) {
|
|
var res = resdata.data;
|
|
if (res.result == 1) {
|
|
that.setData({
|
|
codeUrl: res.data
|
|
});
|
|
} else {
|
|
console.log(res.msg);
|
|
}
|
|
},
|
|
fail: function(res) {
|
|
console.log(res);
|
|
}
|
|
});
|
|
},
|
|
});
|