小程序推薦使用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了。這個可以聲明個個變量解決。