| | |
| | | // pages/resourceDetails/index.js |
| | | const app = getApp() |
| | | const myAudio = wx.createInnerAudioContext(); |
| | | import { |
| | | loginInfo |
| | | } from '../../../../assets/js/login'; |
| | | // innerAudioContext.onPlay(function callback), |
| | | // InnerAudioContext.onTimeUpdate(function callback) |
| | | Page({ |
| | |
| | | dialogKey: false, |
| | | style: 'border: 2rpx solid rgba(220,220,220,1);border-radius: 12rpx;', |
| | | activeId: '', |
| | | storeInfo: '', |
| | | bookId: '', |
| | | bookName: '', |
| | | cmsId: '', |
| | |
| | | parentProductLinkPath: '', |
| | | productLinkPath: '', |
| | | threeLeveData: [], |
| | | source: "", |
| | | showData: '', |
| | | src: '', |
| | | selectedId: null, |
| | |
| | | myAudioDuration: '00:00', // 视频时间 |
| | | myAudioCurrent: '00:00', // 当前播放进度 |
| | | isplay: false, //是否默认播放, |
| | | selectId: '', |
| | | speed: 1.0, |
| | | myAudioPos: '', |
| | | startTime: "", //进入页面当前时间 |
| | | pauseTime: 0, //暂停时间 |
| | | formPath: '', |
| | | loading: true, |
| | | hidden: true |
| | | hidden: true, |
| | | playerList: [], |
| | | progress: 0, |
| | | buyIdList: [], |
| | | buyList: [], |
| | | learnClassData: null, |
| | | isLearnDataBuy: false, |
| | | bookDetail: null, |
| | | learnStartTime: 0, |
| | | learnTimeList: [], |
| | | learnTimeData: 0, |
| | | toView: 'activeName', |
| | | }, |
| | | // // 时间格式化 |
| | | // format(t) { |
| | | // let time = Math.floor(t / 60) >= 10 ? Math.floor(t / 60) : '0' + Math.floor(t / 60); |
| | | // t = time + ':' + ((t % 60) / 100).toFixed(2).slice(-2); |
| | | // return t; |
| | | // }, |
| | | |
| | | |
| | | format(time) { |
| | | let minute = Math.floor(time / 60); |
| | | let second = Math.floor(time % 60); |
| | | let second = Math.round(time % 60); |
| | | let minuteStr = minute < 10 ? "0" + minute : "" + minute; |
| | | let secondStr = second < 10 ? "0" + second : "" + second; |
| | | return minuteStr + ":" + secondStr; |
| | |
| | | return formattedDate |
| | | }, |
| | | |
| | | |
| | | |
| | | /** |
| | | * 生命周期函数--监听页面加载 |
| | | */ |
| | | onLoad(options) { |
| | | console.log(options); |
| | | wx.setNavigationBarTitle({ |
| | | |
| | | title: '资源详情-音频' |
| | | |
| | | }); |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | const systInfo = wx.getSystemInfoSync(); |
| | | const menu = wx.getMenuButtonBoundingClientRect(); // 胶囊信息 |
| | | const navBarHeight = (menu.top - systInfo.statusBarHeight) * 2 + menu.height; // 导航栏高度 |
| | |
| | | navBarHeight: navBarHeight, |
| | | barHeight: systInfo.statusBarHeight, |
| | | activeId: options.activeId, |
| | | storeInfo: options.storeInfo, |
| | | bookId: options.bookId, |
| | | bookName: options.bookName, |
| | | cmsId: options.cmsId, |
| | | parentProductLinkPath: options.parentProductLinkPath, |
| | | productLinkPath: options.productLinkPath, |
| | | formPath: options.formPath |
| | | formPath: options.formPath, |
| | | source: options.source, |
| | | }) |
| | | |
| | | if (options.parentName !== "教学资源" && options.parentName !== "云学习") { |
| | | this.setData({ |
| | | parentName: options.parentName, |
| | | }) |
| | | } |
| | | if (options.formPath == 'jsek_cloudLearning') { |
| | | this.getNoteList() |
| | | this.setData({ |
| | | learnStartTime: Date.now(), |
| | | }) |
| | | this.getLearnTime() |
| | | } |
| | | this.resourceDetailsData() |
| | | this.getNoteList() |
| | | this.getBookInfo(options.bookId) |
| | | }, |
| | | |
| | | /** |
| | | * 生命周期函数--监听页面初次渲染完成 |
| | | * |
| | | */ |
| | | onReady() { |
| | | |
| | | |
| | | }, |
| | | onReady() {}, |
| | | |
| | | /** |
| | | * 生命周期函数--监听页面显示 |
| | |
| | | * 生命周期函数--监听页面隐藏 |
| | | */ |
| | | onHide() { |
| | | // this.setData({ |
| | | // pauseTime: Date.now() |
| | | // }) |
| | | // if (wx.getStorageSync(app.config.tokenKey)) { |
| | | // let duration = this.data.pauseTime - this.data.startTime |
| | | // this.count(duration) |
| | | // } |
| | | // this.setPlayerList() |
| | | this.setData({ |
| | | pauseTime: Date.now() |
| | | isplay: true |
| | | }) |
| | | if (wx.getStorageSync(app.config.tokenKey)) { |
| | | let duration = this.data.pauseTime - this.data.startTime |
| | | this.count(duration) |
| | | } |
| | | }, |
| | | |
| | | /** |
| | |
| | | * |
| | | */ |
| | | onUnload() { |
| | | // this.setData({ |
| | | // pauseTime: Date.now() |
| | | // }) |
| | | // if (wx.getStorageSync(app.config.tokenKey)) { |
| | | // let duration = this.data.pauseTime - this.data.startTime |
| | | // this.count(duration) |
| | | // } |
| | | |
| | | |
| | | // myAudio.src = '' |
| | | // myAudio.destroy() |
| | | this.setData({ |
| | | // myAudioPos: '', |
| | | isplay: false, //是否默认播放, |
| | | myAudioCurrent: '00:00', // 当前播放进度 |
| | | showData: '', |
| | | speed: 1.0, |
| | | pauseTime: Date.now() |
| | | }); |
| | | myAudio.playbackRate = this.data.speed; |
| | | // 停止音频播放 |
| | | myAudio.stop(); |
| | | // 销毁 InnerAudioContext 实例 |
| | | // myAudio.destroy(); |
| | | // 统计学习时长 |
| | | if (wx.getStorageSync(app.config.tokenKey)) { |
| | | let duration = this.data.pauseTime - this.data.startTime |
| | | this.count(duration) |
| | | } |
| | | this.setPlayerList() |
| | | if (this.data.fromPath == 'jsek_cloudLearning') { |
| | | let cloudDuration = this.data.pauseTime - this.data.learnStartTime |
| | | this.cloudCount(cloudDuration) |
| | | } |
| | | }, |
| | | count(timeStr) { |
| | | const data = { |
| | |
| | | if (this.data.cmsId) { |
| | | data.cmsItemId = this.data.cmsId |
| | | } |
| | | console.log('统计', data) |
| | | app.MG.job.newJobWithApiNewEvent(data).then((res) => {}) |
| | | }, |
| | | /** |
| | | * 页面相关事件处理函数--监听用户下拉动作 |
| | | */ |
| | | onPullDownRefresh() { |
| | | |
| | | getLearnTime() { |
| | | app.MG.identity |
| | | .getUserKey({ |
| | | domain: 'cloudLearningTime', |
| | | keys: [this.data.bookId] |
| | | }) |
| | | .then((res) => { |
| | | if (res.length > 0) { |
| | | if (JSON.parse(res[0].value) && JSON.parse(res[0].value).length > 0) { |
| | | this.setData({ |
| | | learnTimeList: JSON.parse(res[0].value), |
| | | learnTimeData: JSON.parse(res[0].value)[0].learnTime, |
| | | }) |
| | | } else { |
| | | this.setData({ |
| | | learnTimeList: [], |
| | | learnTimeData: 0 |
| | | }) |
| | | } |
| | | } |
| | | }) |
| | | }, |
| | | cloudCount(timeStr) { |
| | | let time = Number(this.data.learnTimeData) + Number(timeStr) |
| | | this.setData({ |
| | | learnTimeList: [{ |
| | | learnTime: time |
| | | }], |
| | | }) |
| | | app.MG.identity |
| | | .setUserKey({ |
| | | setKeyRequests: [{ |
| | | domain: 'cloudLearningTime', |
| | | key: this.data.bookId, |
| | | value: JSON.stringify(this.data.learnTimeList) |
| | | }] |
| | | }) |
| | | .then((res) => { |
| | | console.log(timeStr, '学习时长') |
| | | }) |
| | | }, |
| | | // 获取图书详情 |
| | | getBookInfo(id) { |
| | | const query = { |
| | | path: "*", |
| | | queryType: "*", |
| | | productId: id, |
| | | favoriteTypes: "FavoriteBookCity", |
| | | itemFields: { |
| | | "SysType=": "CmsFolder", |
| | | }, |
| | | coverSize: { |
| | | height: 1, |
| | | }, |
| | | fields: {}, |
| | | }; |
| | | if (this.data.storeInfo) query['storeInfo'] = this.data.storeInfo |
| | | app.MG.store.getProductDetail(query).then(async (res) => { |
| | | this.setData({ |
| | | bookDetail: res.datas, |
| | | buyIdList: res.datas.purchasedSaleMethodIdList, |
| | | learnClassData: res.datas.cmsDatas[0].datas.find(item => item.refCode == "jsek_cloudLearning") |
| | | }) |
| | | this.getResourceDataList(this.data.learnClassData) |
| | | }); |
| | | }, |
| | | // 教学资源 云学习 获取 |
| | | getResourceDataList(type) { |
| | | let query = { |
| | | path: '*', |
| | | queryType: '*', |
| | | productId: this.data.bookDetail.id, |
| | | cmsPath: type.productLinkPath, |
| | | cmsType: '*', |
| | | itemFields: { |
| | | SysType: 'CmsFolder', |
| | | }, |
| | | pading: { |
| | | start: 0, |
| | | size: 999 |
| | | }, |
| | | } |
| | | app.MG.store.getProductDetailNoChildren(query).then((res) => { |
| | | const buyList = res.datas.cmsDatas[0].datas.filter(item => item.saleMethod.length && this.data.buyIdList.includes(item.saleMethod.find(citem => citem.SaleType == 'Normal').Id)) |
| | | if (this.data.learnClassData && this.data.learnClassData.saleMethod.length) { |
| | | const learnSaleMethod = this.data.learnClassData.saleMethod.find(citem => citem.SaleType == 'Normal') |
| | | // if (this.data.buyIdList.includes(learnSaleMethod.Id)) buyList.push(learnClassData) |
| | | if (this.data.buyIdList.includes(learnSaleMethod.Id)) { |
| | | buyList.push(this.data.learnClassData) |
| | | } else { |
| | | if (new Date().getTime() > new Date(learnSaleMethod.EndDate).getTime() || learnSaleMethod.Price == 0) { |
| | | this.setData({ |
| | | isLearnDataBuy: true |
| | | }) |
| | | } else { |
| | | this.setData({ |
| | | isLearnDataBuy: false |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | this.setData({ |
| | | buyList |
| | | }) |
| | | }) |
| | | }, |
| | | |
| | | /** |
| | | * 页面上拉触底事件的处理函数 |
| | | */ |
| | | onReachBottom() { |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * 用户点击右上角分享 |
| | | */ |
| | | onShareAppMessage() { |
| | | |
| | | }, |
| | | onTabsChange(event) { |
| | | |
| | | }, |
| | | |
| | | onTabsClick(event) { |
| | | |
| | | }, |
| | | onTabsChange(event) {}, |
| | | onTabsClick(event) {}, |
| | | handleChange(e) { |
| | | this.setData({ |
| | | activeValues: e.detail.value, |
| | | }); |
| | | }, |
| | | onTakeNotes() { |
| | | |
| | | }, |
| | | onTakeNotes() {}, |
| | | showDialog(e) { |
| | | this.setData({ |
| | | submitTitle: this.data.titleName, |
| | | dialogKey: true, |
| | | textvalue: '' |
| | | }); |
| | | const token = wx.getStorageSync(app.config.tokenKey); |
| | | if (token) { |
| | | this.setData({ |
| | | submitTitle: this.data.titleName, |
| | | dialogKey: true, |
| | | textvalue: '' |
| | | }); |
| | | } else { |
| | | loginInfo(app, (data) => {}) |
| | | } |
| | | |
| | | }, |
| | | |
| | | closeDialog() { |
| | |
| | | size: 999 |
| | | } |
| | | } |
| | | |
| | | if (this.data.storeInfo) { |
| | | query.storeInfo = this.data.storeInfo |
| | | } |
| | | app.MG.store.getProductDetail(query).then(res => { |
| | | let selectedId = -1; // 初始化选中项索引 |
| | | let showDataUrl = ''; |
| | | let titleName = ''; |
| | | |
| | | res.datas.cmsDatas[0].datas.forEach((item, index) => { |
| | | // if (this.data.source == 'qrcode') { |
| | | // if (item.id == this.data.activeId) { |
| | | // this.data.threeLeveData.push(item); |
| | | // } |
| | | // } else { |
| | | if (item.selectType === "audio" || item.learnSelectType === "audio") { |
| | | this.data.threeLeveData.push(item); |
| | | if (this.data.storeInfo == 'jsek_digitalCourses') { |
| | | if (item.sysType == 'CmsItem') { |
| | | this.data.threeLeveData.push(item) |
| | | } |
| | | if (item.sysType == 'CmsItem' && item.freeFile) { |
| | | this.data.threeLeveData.push(item) |
| | | } |
| | | } else { |
| | | if (this.data.buyList.length) { |
| | | if (this.data.buyList.some(citem => item.productLinkPath.includes(citem.productLinkPath))) { |
| | | this.data.threeLeveData.push(item) |
| | | } |
| | | } else { |
| | | // if (!item.saleMethod.length) this.data.threeLeveData.push(item) |
| | | if (!item.saleMethod.length) { |
| | | // 没买且无销售方式 |
| | | this.data.threeLeveData.push(item) |
| | | } else { |
| | | // 没买且销售方式过期//没买,销售方式价格为0 |
| | | const itemSaleMethod = item.saleMethod.find(citem => citem.SaleType == 'Normal') |
| | | if (new Date().getTime() > new Date(itemSaleMethod.EndDate).getTime() || itemSaleMethod.Price == 0) { |
| | | this.data.threeLeveData.push(item) |
| | | } |
| | | // 没买且只有试读资源 |
| | | if (!item.file && item.freeFile) this.data.threeLeveData.push(item) |
| | | } |
| | | } |
| | | } |
| | | } |
| | | // } |
| | | }); |
| | | this.data.threeLeveData.forEach((items, indexs) => { |
| | | if (this.data.productLinkPath == items.productLinkPath) { |
| | | selectedId = indexs; |
| | | |
| | | } |
| | | }) |
| | | if (selectedId !== -1) { |
| | | let datas = this.data.threeLeveData[selectedId]; |
| | | |
| | | if (this.data.formPath == 'jsek_cloudLearning') { |
| | | showDataUrl = app.config.requestCtx + '/file/api/ApiDownloadForAuthorize?md5=' + datas.protectedFile + '&token=' + wx.getStorageSync(app.config.tokenKey); |
| | | if (this.data.source == 'qrcode') { |
| | | let qrData = this.data.threeLeveData.find(ditem => ditem.id == this.data.activeId) |
| | | if (qrData && this.data.isLearnDataBuy) { |
| | | if (qrData) { |
| | | this.setData({ |
| | | threeLeveData: [qrData] |
| | | }) |
| | | } |
| | | } else { |
| | | showDataUrl = datas.file ? app.config.requestCtx + '/file/api/ApiDownload?md5=' + datas.file : app.config.requestCtx + '/file/api/ApiDownload?md5=' + datas.freeFile |
| | | this.setData({ |
| | | threeLeveData: [] |
| | | }) |
| | | } |
| | | titleName = datas.name; |
| | | } else { |
| | | this.setData({ |
| | | threeLeveData: this.data.threeLeveData |
| | | }) |
| | | } |
| | | if (this.data.threeLeveData.length > 0) { |
| | | selectedId = this.data.threeLeveData.findIndex(items => items.productLinkPath == this.data.productLinkPath) |
| | | if (selectedId !== -1) { |
| | | let datas = this.data.threeLeveData[selectedId]; |
| | | if (this.data.formPath == 'jsek_cloudLearning') { |
| | | let file = datas.protectedFile ? datas.protectedFile : datas.freeFile |
| | | showDataUrl = app.config.requestCtx + '/file/api/ApiDownloadForAuthorize?md5=' + file + '&token=' + wx.getStorageSync(app.config.tokenKey); |
| | | } else { |
| | | showDataUrl = datas.file ? app.config.requestCtx + '/file/api/ApiDownload?md5=' + datas.file : app.config.requestCtx + '/file/api/ApiDownload?md5=' + datas.freeFile |
| | | } |
| | | titleName = datas.name; |
| | | } |
| | | |
| | | this.setData({ |
| | | threeLeveData: this.data.threeLeveData, |
| | | selectedId: selectedId, |
| | | showData: showDataUrl, |
| | | titleName: titleName, |
| | | loading: false, |
| | | hidden: false |
| | | }); |
| | | this.pubulicPlayFun(); |
| | | |
| | | this.setData({ |
| | | threeLeveData: this.data.threeLeveData, |
| | | selectedId: selectedId, |
| | | showData: showDataUrl, |
| | | titleName: titleName, |
| | | loading: false, |
| | | hidden: false, |
| | | toView: 'activeName' + selectedId, |
| | | }); |
| | | this.pubulicPlayFun(); |
| | | } else { |
| | | wx.showToast({ |
| | | icon: 'none', |
| | | title: '请先返回资源所在图书详情购买视频资源', |
| | | }) |
| | | wx.navigateTo({ |
| | | url: `/packageBookService/pages/bookServices/detail/index?id=${this.data.bookDetail.id}&name=${this.data.bookDetail.name}&tabValue=jsek_cloudLearning`, |
| | | }); |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | onVideo(e) { |
| | | // myAudio.destroy(); |
| | | |
| | | this.setPlayerList() |
| | | this.setData({ |
| | | myAudioCurrent: '00:00', |
| | | myAudioPos: '', |
| | | isplay: false |
| | | }) |
| | | |
| | | const item = e.currentTarget.dataset.item |
| | | if (this.data.showData != '') { |
| | | this.setData({ |
| | | titleName: item.name, |
| | | selectId: item.id, |
| | | selectedId: e.currentTarget.dataset.index, |
| | | showData: '' |
| | | showData: '', |
| | | activeId: item.id |
| | | }) |
| | | |
| | | if (item.selectType == "audio" || item.learnSelectType === "audio") { |
| | | if (this.data.formPath == 'jsek_cloudLearning') { |
| | | let file = item.protectedFile ? item.protectedFile : item.freeFile |
| | | // 这里处理云学习的 |
| | | this.setData({ |
| | | showData: app.config.requestCtx + '/file/api/ApiDownloadForAuthorize?md5=' + item.protectedFile + '&token=' + wx.getStorageSync(app.config.tokenKey) |
| | | showData: app.config.requestCtx + '/file/api/ApiDownloadForAuthorize?md5=' + file + '&token=' + wx.getStorageSync(app.config.tokenKey) |
| | | }) |
| | | this.pubulicPlayFun() |
| | | |
| | | } else { |
| | | |
| | | |
| | | this.setData({ |
| | | showData: item.file ? app.config.requestCtx + '/file/api/ApiDownload?md5=' + item.file : app.config.requestCtx + '/file/api/ApiDownload?md5=' + item.freeFile |
| | | }) |
| | | this.pubulicPlayFun() |
| | | |
| | | |
| | | } |
| | | } |
| | | } |
| | |
| | | }) |
| | | }) |
| | | }, |
| | | |
| | | |
| | | |
| | | newTopicMessageGet() { |
| | | let query = { |
| | |
| | | |
| | | // 标题改变 |
| | | changeTitle(e) { |
| | | |
| | | this.setData({ |
| | | flag: e.currentTarget.dataset.value |
| | | }) |
| | |
| | | this.getNoteList() |
| | | |
| | | }, |
| | | onTextarea() { |
| | | |
| | | }, |
| | | onTextarea() {}, |
| | | textareaChange(e) { |
| | | this.setData({ |
| | | textvalue: e.detail.value |
| | | }) |
| | | }, |
| | | |
| | | |
| | | // 获取笔记列表 |
| | | async getNoteList() { |
| | |
| | | }, |
| | | // 新建笔记接口 |
| | | async makeNote() { |
| | | |
| | | let topicId |
| | | await app.MG.ugc |
| | | .getProductUserSubmitTopic({ |
| | |
| | | }, |
| | | // 播放公共代码 |
| | | pubulicPlayFun() { |
| | | // debugger |
| | | this.setData({ |
| | | speed: 1.0, |
| | | }) |
| | |
| | | myAudio.onCanplay(() => { |
| | | myAudio.duration; //必须写,不然获取不到 |
| | | setTimeout(() => { |
| | | // 要初始化音频的时间 |
| | | // myAudio.startTime = myAudio.currentTime //开始时间 |
| | | this.setData({ |
| | | myAudioDuration: this.format(myAudio.duration), |
| | | myAudioCurrent: this.format(myAudio.currentTime) |
| | |
| | | //播放事件 |
| | | myAudio.play(); |
| | | |
| | | |
| | | |
| | | |
| | | // 播放完成处理,按钮变一下 |
| | | myAudio.onEnded((res) => { |
| | | this.setData({ |
| | | speed: 1.0, |
| | | }) |
| | | myAudio.playbackRate = this.data.speed; |
| | | |
| | | this.setData({ |
| | | isplay: true, |
| | | myAudioCurrent: '00:00', |
| | | myAudioPos: '', |
| | | }) |
| | | |
| | | }); |
| | | |
| | | //进度条变化 |
| | | myAudio.onTimeUpdate(() => { |
| | | |
| | | |
| | | |
| | | myAudio.startTime = 0 |
| | | this.setData({ |
| | | myAudioPos: myAudio.currentTime / myAudio.duration * 100, |
| | | myAudioCurrent: this.format(myAudio.currentTime), |
| | | myAudioDuration: this.format(myAudio.duration), |
| | | progress: ((myAudio.currentTime / myAudio.duration) * 100).toFixed(2) |
| | | }); |
| | | // debugger |
| | | |
| | | console.log(this.data.myAudioPos); |
| | | // console.log(myAudio.currentTime.toFixed(3), myAudio.duration); |
| | | }) |
| | | |
| | | // if (this.data.myAudioDuration !== this.data.myAudioCurrent) { |
| | | // this.setData({ |
| | | // myAudioPos: myAudio.currentTime / myAudio.duration * 100, |
| | | // myAudioCurrent: this.format(myAudio.currentTime), |
| | | // myAudioDuration: this.format(myAudio.duration), |
| | | // }); |
| | | |
| | | // }else{ |
| | | // myAudio.pause(); |
| | | // this.setData({ |
| | | // isplay: true |
| | | // }); |
| | | // } |
| | | }, |
| | | |
| | | |
| | | //播放 |
| | | play() { |
| | |
| | | }); |
| | | }, |
| | | |
| | | |
| | | //右切换 |
| | | onLeftSwitch() { |
| | | this.setData({ |
| | | speed: 1.0, |
| | | myAudioCurrent: '00:00' |
| | | }) |
| | | const index = this.data.threeLeveData.findIndex((item) => item.id == this.data.selectId) |
| | | if (this.data.threeLeveData[index - 1]) { |
| | | this.changeItem(this.data.threeLeveData[index - 1]) |
| | | this.setData({ |
| | | selectedId: index - 1, |
| | | }) |
| | | } else { |
| | | console.log('已经是第一首了'); |
| | | } |
| | | }, |
| | | //右切换 |
| | | onRightSwitch() { |
| | | this.setData({ |
| | | speed: 1.0, |
| | | myAudioCurrent: '00:00' |
| | | }) |
| | | console.log('右切换'); |
| | | const index = this.data.threeLeveData.findIndex((item) => item.id == this.data.selectId) |
| | | if (this.data.threeLeveData[index + 1]) { |
| | | this.changeItem(this.data.threeLeveData[index + 1]) |
| | | this.setData({ |
| | | selectedId: index + 1, |
| | | }) |
| | | } else { |
| | | console.log('已经是最后一首了'); |
| | | } |
| | | }, |
| | | |
| | | // 左右切换 |
| | | changeItem(item) { |
| | | |
| | | |
| | | if (this.data.showData != '') { |
| | | this.setData({ |
| | | showData: '' |
| | | }) |
| | | } |
| | | this.setData({ |
| | | titleName: item.name, |
| | | selectId: item.id |
| | | }) |
| | | if (item.selectType == "audio") { |
| | | this.setData({ |
| | | showData: app.config.requestCtx + '/file/api/ApiDownload?md5=' + item.file |
| | | }) |
| | | this.pubulicPlayFun() |
| | | } |
| | | }, |
| | | // 播放倍速 |
| | | onSpeed() { |
| | | let c = this.data.speed; |
| | |
| | | |
| | | // 拖动进度条,到指定位置 |
| | | hanle_slider_change(e) { |
| | | |
| | | const position = e.detail.value; |
| | | var currentTime = position / 100 * myAudio.duration; |
| | | myAudio.seek(currentTime); |
| | |
| | | myAudioPos: position, |
| | | myAudioCurrent: this.format(currentTime) |
| | | }) |
| | | |
| | | |
| | | |
| | | }, |
| | | |
| | | |
| | | toggleDropdown() { |
| | | this.setData({ |
| | | showDropdown: !this.data.showDropdown |
| | | }); |
| | | |
| | | }, |
| | | smallSpeed() { |
| | | this.setData({ |
| | |
| | | myAudio.playbackRate = this.data.speed; // 播放速率 |
| | | }, 200); |
| | | }, |
| | | |
| | | //获取音频学习 |
| | | getPlayerList() { |
| | | app.MG.identity |
| | | .getUserKey({ |
| | | domain: 'videoPlayer', |
| | | keys: [this.data.bookId] |
| | | }) |
| | | .then((res) => { |
| | | if (res.length > 0) { |
| | | this.setData({ |
| | | playerList: JSON.parse(res[0].value) |
| | | }) |
| | | } |
| | | }) |
| | | }, |
| | | setPlayerList() { |
| | | const token = wx.getStorageSync(app.config.tokenKey); |
| | | if (!token) return |
| | | let that = this |
| | | if (that.data.progress > 0) { |
| | | let index = that.data.playerList.findIndex((itemData) => itemData.cmsItemId == that.data.activeId) |
| | | if (index > -1) { |
| | | that.data.playerList.splice(index, 1) |
| | | } |
| | | that.data.playerList.push({ |
| | | cmsItemId: that.data.activeId, |
| | | progress: that.data.progress |
| | | }) |
| | | app.MG.identity |
| | | .setUserKey({ |
| | | setKeyRequests: [{ |
| | | domain: 'videoPlayer', |
| | | key: that.data.bookId, |
| | | value: JSON.stringify(that.data.playerList) |
| | | }] |
| | | }) |
| | | .then((res) => {}) |
| | | } |
| | | }, |
| | | }) |