亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

微信小程序多音頻播放進度條問題

2019-11-19 13:07:45
字體:
來源:轉載
供稿:網友

真的腦子疼,小程序的音頻組件居然沒有進度控制的功能,網上的方法又很少,邏輯通了就好寫了。

1.所有音頻播放、停止按鈕使用狀態切換控制
2.當點擊某個音頻播放時,首先將所有音頻的狀態置為停止狀態,然后將當前音頻置為播放狀態
3.滾動條插件配合音頻控件一起使用
4.播放狀態時滾動條的長度隨音頻進度變化而變化,時間也要顯示
5.拖動滾動條時,音頻的當前時間隨滾動條變化而變化

1.wxml

<text class="left_text">{{item.currentProcess}}</text>        <slider class="slider_middle" bindchange="changeSlide" bindtouchstart="start" bindtouchend="end" max="{{item.totalProcessNum}}" min="0" value="{{item.currentProcessNum}}" disabled="{{item.canSlider}}" block-size  ="18" data-index="{{index}}"></slider>        <text class="right_text">{{item.totalProcess}}</text>        <image class="audio_btn" wx:if="{{!item.showAudio}}" src="../assets/play.png" data-src="{{item.src}}" bindtap="playAudio" data-index = "{{index}}"></image>        <image class="audio_btn" wx:else src="../assets/pause.png" bindtap="pauseAudio" data-index = "{{index}}"></image>

2.js

 videoControl(e) {//控制視頻播放,需求更改后暫時無用  let src = e.currentTarget.dataset.src  let img = e.currentTarget.dataset.post  let data = this.data.cc  let that = this  if (this.data.innerAudioContext2){   that.data.innerAudioContext2.stop()  }  if (this.data.innerAudioContext) {   that.data.innerAudioContext.stop()   that.setUser(that.data.oldid, false)  }  for(var i = 0;i<data.length;i++){   if (data[i].type == '2'){    data[i].play = true   }  }  this.setData({   cc:data  })  if(this.data.type){   wx.navigateTo({    url: '/pages/record/record?cid=' + this.data.cid + '&src=' + src + '&img=' + img + '&type="share"'   })  }else{   wx.navigateTo({    url: '/pages/record/record?cid=' + this.data.cid + '&src=' + src + '&img=' + img   })  } }, audioControl(e) {//控制課程音頻播放,需求更改后暫時無用  let index = e.currentTarget.dataset.index  let that = this  let data = this.data.cc  if (this.data.innerAudioContext) {   that.data.innerAudioContext.stop()   that.setUser(that.data.oldid, false)  }   for (var i = 0; i < data.length; i++) {    if (data[i].type == '2' && i != index) {     data[i].play = true    } else if (data[i].type == '2') {     data[i].play = false    } if (data[i].type == '3') {     data[i].play = true    }    }  if (!that.data.innerAudioContext2) {//第一次點擊音頻   that.data.innerAudioContext2 = wx.createInnerAudioContext();   that.data.innerAudioContext2.src = e.currentTarget.dataset.srcs   that.data.innerAudioContext2.play()   that.data.innerAudioContext2.onPlay(()=>{   })   that.data.innerAudioContext2.onStop(() => {   })   that.setData({//記錄當前點擊項和上次點擊項    newid2: e.currentTarget.dataset.index,    oldid2: that.data.newid2 ? that.data.newid2 : index   })    } else {//非第一次點擊   let old = that.data.newid2   that.setData({    newid2: index,    oldid2: old   })   if (that.data.oldid2 != index ) {    that.data.innerAudioContext2.stop()    that.data.innerAudioContext2.src = e.currentTarget.dataset.srcs    that.data.innerAudioContext2.play()   }else{    if (that.data.innerAudioContext2.paused){     that.data.innerAudioContext2.stop()     that.data.innerAudioContext2.src = e.currentTarget.dataset.srcs     that.data.innerAudioContext2.play()    }else{     that.data.innerAudioContext2.stop()      for (var i = 0; i < data.length; i++) {      data[i].play = true     }    }   }  }  this.setData({   cc: data  }) }, playAudio(e){//帶滾動條多個音頻處理問題  let that = this  let arr = that.data.cc  let index = e.currentTarget.dataset.index  if (that.data.audio) {//將所有的音頻停止   that.data.audio.pause()  }  for(let i=0;i<arr.length;i++){//將所有的音頻置為停止狀態   that.setAudioType(i,false,true)  }  that.setAudioType(index,true,false)//將當前音頻置為播放狀態  that.data.audio = wx.getBackgroundAudioManager();//初始化音頻并播放  that.data.audio.src = e.currentTarget.dataset.src  that.data.audio.title = '泰格英語'  that.data.audio.epname = '泰格英語'  that.data.audio.autoplay = true  that.data.audio.play();  //音頻開始播放的時間  if (arr[index].currentProcessNum != 0){   that.data.audio.startTime = arr[index].currentProcessNum  }  //音頻自然播放結束  that.data.audio.onEnded(function name(params) {   that.setCurrent(index, "00:00", 0)   that.setAudioType(index,false,false)  })  //音頻進度播放更新  that.data.audio.onTimeUpdate(function () {   //設置總時長   if(arr[index].totalProcess == '00:00' || arr[index].totalProcessNum == '00:00'){    that.setTotal(index,that.time_to_sec(that.data.audio.duration), that.data.audio.duration)   }   //沒有觸動滑動事件更新進度   if(!arr[index].isMove){    that.setCurrent(index,that.time_to_sec(that.data.audio.currentTime), that.data.audio.currentTime)   }  }) }, //開始滑動觸發 start : function (e) {  let arr = this.data.cc  let index = e.currentTarget.dataset.index  this.move(index,true) }, //觸發滑動條 changeSlide : function (e) {  let that = this  let arr = that.data.cc  let index = e.currentTarget.dataset.index  const position = e.detail.value  let seek = arr[index].seek  seek = position  if (seek != -1) {   wx.seekBackgroundAudio({    position: Math.floor(position),   })   seek = -1  }  that.setCurrent(index,that.time_to_sec(position), position)  that.seek(index,seek) }, //結束滑動觸發 end : function (e) {  let arr = this.data.cc  let index = e.currentTarget.dataset.index  this.move(index, false) }, //停止播放音頻 pauseAudio:function (e) {  let that = this  let index = e.currentTarget.dataset.index  that.data.audio.pause()  that.setAudioType(index,false,true) }, //設置音頻圖片狀態以及滾動條可播放狀態函數 setAudioType: function (index, tag, tagSlide, ) {  let that = this  let arrs = that.data.cc  arrs[index].showAudio = tag  arrs[index].canSlider = tagSlide  that.setData({   cc:arrs  }) }, //設置音頻當前播放時間以及滾動條當前位置函數 setCurrent: function (index,currentProcess, currentProcessNum) {  let that = this  let arrs = that.data.cc  arrs[index].currentProcess = currentProcess  arrs[index].currentProcessNum = currentProcessNum  that.setData({   cc: arrs  }) }, //設置音頻總播放時間以及滾動條總位置函數 setTotal: function (index,totalProcess, totalProcessNum) {  let that = this  let arrs = that.data.cc  arrs[index].totalProcess = totalProcess  arrs[index].totalProcessNum = totalProcessNum  that.setData({   cc: arrs  }) }, //設置滾動條是否滾動狀態函數 move:function (index,isMove) {  let that = this  let arrs = that.data.cc  arrs[index].isMove = isMove  that.setData({   cc: arrs  }) }, //設置音頻時間點函數 seek: function (index, seek) {  let that = this  let arrs = that.data.cc  arrs[index].seek = seek  that.setData({   cc: arrs  }) },

總結

以上所述是小編給大家介紹的微信小程序多音頻播放進度條問題,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲视频免费一区| 欧美国产在线电影| 九九九热精品免费视频观看网站| 在线观看日韩视频| 国产aaa精品| 国产在线播放91| 日本不卡视频在线播放| 国产精品久久久久久久久久东京| 欧美性jizz18性欧美| 亚洲一区二区三区四区视频| 欧美特黄级在线| 亚洲欧美成人网| 色噜噜久久综合伊人一本| 日韩在线免费高清视频| 国产网站欧美日韩免费精品在线观看| 国产精品美女www爽爽爽视频| 久久久久国产精品免费| 亚洲精选在线观看| 懂色aⅴ精品一区二区三区蜜月| 91av视频在线播放| 亚洲成人免费网站| 日本一区二区在线免费播放| 91青草视频久久| 欧美成在线观看| 亚洲欧美国产精品专区久久| 日韩精品免费在线视频| 国产在线视频欧美| 美日韩丰满少妇在线观看| 亚洲色图偷窥自拍| 久久久久中文字幕2018| 亚洲另类激情图| 国产激情久久久| 欧美色图在线视频| 欧美日韩加勒比精品一区| 国产成人激情视频| 操人视频在线观看欧美| 亚洲欧美在线x视频| 久久久久国产精品免费网站| 亚洲国产三级网| 亚洲人成伊人成综合网久久久| 亚洲免费中文字幕| 国产视频久久久久| 日韩视频一区在线| 亚洲香蕉成人av网站在线观看| 国产精品福利在线| 亚洲美女性视频| 国产精品自产拍在线观| 日本aⅴ大伊香蕉精品视频| 成人国产精品av| 国产不卡一区二区在线播放| 26uuu另类亚洲欧美日本老年| 国产大片精品免费永久看nba| 91高清免费在线观看| 日韩有码视频在线| 日韩在线观看网站| 欧美大片在线免费观看| 久久久91精品| 伊人久久综合97精品| 欧美电影院免费观看| 久久国产精品免费视频| 亚洲图片制服诱惑| 免费91麻豆精品国产自产在线观看| 国产精品视频精品视频| 日韩精品黄色网| 5278欧美一区二区三区| 国产一区二区在线免费视频| 欧美怡红院视频一区二区三区| 性色av一区二区三区| 日韩中文字幕精品| 日韩中文字幕免费视频| 91国产一区在线| 国产精品免费久久久久影院| 在线观看欧美日韩| 欧美日韩免费区域视频在线观看| 久久久久国产一区二区三区| 97视频在线观看亚洲| 欧美最近摘花xxxx摘花| 亚洲欧美国产一区二区三区| 国产婷婷成人久久av免费高清| 日韩欧美国产视频| 91色视频在线导航| 中文字幕久久精品| 久久亚洲一区二区三区四区五区高| 97精品在线观看| 欧美激情一区二区三区久久久| 亚洲丝袜在线视频| 亚洲午夜小视频| 国产999在线观看| 国产成人亚洲综合91| 欧美日韩一区二区精品| 少妇高潮久久久久久潘金莲| 色狠狠av一区二区三区香蕉蜜桃| 7777kkkk成人观看| 九九热99久久久国产盗摄| 国产精品视频不卡| 最新国产精品亚洲| 欧美香蕉大胸在线视频观看| 日日摸夜夜添一区| 亚洲成色999久久网站| 欧美制服第一页| 国产91av在线| 欧美成人中文字幕| 色一情一乱一区二区| 亚洲在线免费观看| 色婷婷综合久久久久| 欧美在线观看视频| 国产精品第七十二页| 97在线视频精品| 亚洲第一视频在线观看| 中文字幕亚洲激情| 欧洲日韩成人av| 欧美一级片在线播放| 国产欧美亚洲视频| 国产精品久久综合av爱欲tv| 日本亚洲精品在线观看| 亚洲人成在线电影| 欧洲精品在线视频| 青草青草久热精品视频在线观看| 日韩精品免费观看| 亚洲剧情一区二区| 国产成人精品一区二区| 国产欧美一区二区三区久久| 欧美色欧美亚洲高清在线视频| 久久精品国产91精品亚洲| 91中文字幕在线观看| 夜夜嗨av一区二区三区四区| 国产日产亚洲精品| 日本精品一区二区三区在线播放视频| 欧美成人精品一区| 欧美性高潮床叫视频| 国产精品一区电影| 久久躁狠狠躁夜夜爽| 国产精品99久久久久久久久久久久| 国产91久久婷婷一区二区| 国内精品美女av在线播放| 日韩大陆欧美高清视频区| 精品久久久久久中文字幕大豆网| 久久久91精品| 国产在线观看一区二区三区| 日韩在线小视频| 国产视频丨精品|在线观看| 亚洲国产成人久久综合一区| 国产亚洲综合久久| 日韩精品在线第一页| 欧美一级视频一区二区| 久久久久久免费精品| xxx欧美精品| 8x海外华人永久免费日韩内陆视频| 欧美老女人xx| 久久国产精品偷| 国产一区二区免费| 亚洲国产99精品国自产| 国产一区二区av| 亚洲一区二区中文字幕| 57pao成人国产永久免费| 日韩在线视频网| 欧美电影免费观看| 日韩国产精品一区| 欧美激情伊人电影| 久久在线免费视频| 国产深夜精品福利| 国产精品aaa| 亚洲午夜女主播在线直播| 亚洲欧美日韩天堂一区二区|