首先在没有播放音频之前,居然拿不到总时长
但是在播放之后也需要设置setTimeout来获取
按照官方的写法
{
myAudio.onTimeUpdate(() => {
console.log(myAudio.duration) //总时长
console.log(myAudio.currentTime) //当前播放进度
})
},500)
}
但是这两个console都没有触发,很是神奇
增加延迟的时间也没有用
打断点都没有进去
但是!
{
myAudio.currentTime
myAudio.onTimeUpdate(() => {
console.log(myAudio.duration) //总时长
console.log(myAudio.currentTime) //当前播放进度
})
},500)
}
在里面写了一个
myAudio.currentTime 或者 myAudio.duration
断点就进去了,console也出来了
由于过于神奇,所以记录一下
下面看下微信小程序音频长度获取的问题
小程序推荐使用wx.createInnerAudioContext()
创建的innerAudioContext
,我们也通过这个接口创建音频。
但是,给innerAudioContext赋值src后就能获取吗,请看下面的例子:
{
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了。这个可以声明个个变量解决。
总结
以上所述是小编给大家介绍的微信小程序获取音频时长与实时获取播放进度问题。编程之家 jb51.cc 收集整理的教程希望能对你有所帮助,如果觉得编程之家不错,可分享给好友!感谢支持。