⼩程序获取⾳频时长与实时获取播放进度问题⾸先在没有播放⾳频之前,居然拿不到总时长
但是在播放之后也需要设置setTimeout来获取
所以在监听⾳频播放进度更新事件中获取。顺便获取当前播放进度
按照官⽅的写法
audioPlayed: function () {
myAudio.play()
setTieout(() => {
console.log(myAudio.duration) //总时长
console.log(myAudio.currentTime) //当前播放进度
})
}, 500)
}
但是这两个console都没有触发,很是神奇
写文章的小程序增加延迟的时间也没有⽤
打断点都没有进去
但是!
audioPlayed: function () {
myAudio.play()
setTieout(() => {
myAudio.currentTime
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 = 'upyun.lesson.bbwansha/dub/user/2.mp3';
console.log(bgM.duration);//0
console.log(bgM.duration)//0
})
bgM.play();
console.log(bgM.duration)//0
})
setTimeout(()=>{
console.log(bgM.duration)//2.795102
},1000)
},
赋值结束后不能获取能够理解,在onCanplay,onPlay没法获取有点难以理解。
还好,我们通过setTimeout可以获取到。
获取到之后,还有个问题,在开发⼯具⾥,⾳频播放完之后,duration不变。
偶尔出现的问题:但在真机上,duration变为0了,也就是第⼆遍播放的时候,获取不到duration了。这个可以声明个个变量解决。
总结
以上所述是⼩编给⼤家介绍的⼩程序获取⾳频时长与实时获取播放进度问题,希望对⼤家有所帮助,如果⼤家有任何疑问请给我留⾔,⼩编会及时回复⼤家的。在此也⾮常感谢⼤家对⽹站的⽀持!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论