yuminge-app/yun-min-program-plugin-master/packageA/member/course/VoiceDetail/VoiceDetail.js

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);
}
});
},
});