首先,在播放音频之前,我无法得到总时长
但是玩完之后,你还需要设置setTimeout来获取它
因此,它是在监控音频回放进度更新事件中获取的。顺便获取当前播放进度
根据官方的文字
audioPlayed:函数(){ myaudio . play())setTieout(()={ myaudio . ontimeupdate(()={ console . log(myaudio . duration)//Total duration console . log(myaudio . current time)//当前播放进度}),500)},但是两个控制台都没有触发,太神奇了
增加延迟时间是没有用的
我甚至没有在中断点进去
但是!
audioPlayed:函数(){ myaudio . play()setTieout(()={ myaudio . current time my audio . ontimeupdate(()={ console . log(myaudio . duration)//Total duration console . log(myaudio . current time)//当前播放进度}),500)}在其中写了一个
MyAudio.currentTime或myAudio.duration
断点进入,控制台出来
因为太神奇了,所以做个记录
我们来看一下获取微信小程序音频长度的问题
小程序建议使用wx.createInnerAudioContext()创建的innerAudioContext,我们也通过这个接口创建音频。
音频的长度可以通过属性获得:
但是,在将src分配给innerAudioContext之后,您能得到它吗?请参见以下示例:
onLoad:函数(){ bgM=wx . createinneraudiocontext();bgm . src=' https://upyun . leave . 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)},赋值完成后无法理解,一旦onPlay,onPlay。
幸运的是,我们可以通过setTimeout获得它。
拿到之后,还是有问题。在开发工具中,音频播放后,时长不变。
偶尔出现的问题:但是在真机上,时长变成了0,也就是第二次播放的时候无法获得时长。这可以声明每个变量的解。
摘要
上述问题是边肖推出的微信小程序获取音频时长和实时获取播放进度的问题。希望对大家有帮助。如果你有任何问题,请给我留言,边肖会及时回复你。非常感谢您对我们网站的支持!