国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

微信小程序獲取音頻時長與實時獲取播放進度問題

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

首先在沒有播放音頻之前,居然拿不到總時長

但是在播放之后也需要設置setTimeout來獲取

所以在監聽音頻播放進度更新事件中獲取。順便獲取當前播放進度

按照官方的寫法

audioPlayed: function () {  myAudio.play()  setTieout(() => {    myAudio.onTimeUpdate(() => {      console.log(myAudio.duration)  //總時長      console.log(myAudio.currentTime)  //當前播放進度    })  }, 500)}

但是這兩個console都沒有觸發,很是神奇

增加延遲的時間也沒有用

打斷點都沒有進去

但是!

audioPlayed: function () {  myAudio.play()  setTieout(() => {    myAudio.currentTime    myAudio.onTimeUpdate(() => {      console.log(myAudio.duration)  //總時長      console.log(myAudio.currentTime)  //當前播放進度    })  }, 500)}

在里面寫了一個

myAudio.currentTime  或者   myAudio.duration

斷點就進去了,console也出來了

由于過于神奇,所以記錄一下

下面看下微信小程序音頻長度獲取的問題

小程序推薦使用wx.createInnerAudioContext()創建的innerAudioContext,我們也通過這個接口創建音頻。

音頻的長度可以通過屬性獲取:

但是,給innerAudioContext賦值src后就能獲取嗎,請看下面的例子:

onLoad: function () {    bgM = wx.createInnerAudioContext();    bgM.src = 'https://upyun.lesson.bbwansha.com/dub/user/2.mp3';    console.log(bgM.duration);//0    bgM.onCanplay(()=>{       console.log(bgM.duration)//0    })    bgM.play();    bgM.onPlay(()=>{       console.log(bgM.duration)//0    })    setTimeout(()=>{      console.log(bgM.duration)//2.795102    },1000)},

賦值結束后不能獲取能夠理解,在onCanplay,onPlay沒法獲取有點難以理解。

還好,我們通過setTimeout可以獲取到。

獲取到之后,還有個問題,在開發工具里,音頻播放完之后,duration不變。

偶爾出現的問題:但在真機上,duration變為0了,也就是第二遍播放的時候,獲取不到duration了。這個可以聲明個個變量解決。

總結

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 泰兴市| 伊金霍洛旗| 信丰县| 阿巴嘎旗| 新泰市| 阿勒泰市| 长岭县| 中方县| 衡东县| 曲麻莱县| 财经| 佛坪县| 尼勒克县| 郴州市| 尤溪县| 福州市| 自治县| 博罗县| 噶尔县| 平江县| 白银市| 南安市| 武鸣县| 康保县| 游戏| 平顶山市| 那曲县| 天等县| 彰化市| 五大连池市| 西宁市| 互助| 广安市| 紫阳县| 平乡县| 汉沽区| 永宁县| 陆丰市| 呼伦贝尔市| 临高县| 芮城县|