EASYAIuniappNewUI/dist/build/mp-weixin/components/firstui/fui-parse/firstui-audio.js
2025-02-08 18:50:38 +08:00

2 lines
1.7 KiB
JavaScript

"use strict";const t=require("../../../common/vendor.js"),e={name:"firstui-audio",props:{title:{type:String,default:""},desc:{type:String,default:""},src:{type:String,default:""}},watch:{src(t,e){newVal&&this.handleInitAudio(newVal)}},data:()=>({isPlay:!1,currentTimeStr:"00:00",durationStr:"00:00",progress:0}),created(){this.innerAudioContext=null,this.src&&this.handleInitAudio(this.src)},beforeUnmount(){this.innerAudioContext&&this.innerAudioContext.destroy()},methods:{handleInitAudio(e){this.innerAudioContext=t.index.createInnerAudioContext(),this.innerAudioContext.src=e,this.innerAudioContext.onPlay((()=>{console.log("开始播放")})),this.innerAudioContext.onCanplay((()=>{this.innerAudioContext.duration,setTimeout((()=>{const t=this.parseTime(this.innerAudioContext.duration);this.durationStr=t}),1e3)})),this.innerAudioContext.onError((t=>{console.log(t.errMsg),console.log(t.errCode)})),this.innerAudioContext.onEnded((()=>{this.isPlay=!1})),this.innerAudioContext.onTimeUpdate((()=>{const t=this.innerAudioContext.currentTime,e=this.innerAudioContext.duration,n=this.parseTime(t),i=t/e*100;this.currentTimeStr=n,this.progress=i}))},handleControl(){this.isPlay?(this.isPlay=!1,this.innerAudioContext&&this.innerAudioContext.pause()):(this.isPlay=!0,this.innerAudioContext&&this.innerAudioContext.play())},parseTime(t){const e=Math.floor(t/60),n=Math.floor(t%60);return`${e<10?"0"+e:e}:${n<10?"0"+n:n}`}}};const n=t._export_sfc(e,[["render",function(e,n,i,o,r,s){return t.e({a:r.isPlay?1:"",b:r.isPlay?"":1,c:i.title},i.title?{d:t.t(i.title)}:{},{e:i.desc},i.desc?{f:t.t(i.desc)}:{},{g:`${r.progress}%`,h:t.t(r.currentTimeStr),i:t.t(r.durationStr),j:t.o(((...t)=>s.handleControl&&s.handleControl(...t)))})}],["__scopeId","data-v-cf874799"]]);wx.createComponent(n);