小程序推荐使用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了。这个可以声明个个变量解决:setTimeout这种方法里,获取到的长度赋值给一个全局变量。