最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

微信小程序获取音频时长与实时获取播放进度问题

来源:动视网 责编:小采 时间:2020-11-27 22:09:05
文档

微信小程序获取音频时长与实时获取播放进度问题

微信小程序获取音频时长与实时获取播放进度问题:首先在没有播放音频之前,居然拿不到总时长 但是在播放之后也需要设置setTimeout来获取 所以在监听音频播放进度更新事件中获取。顺便获取当前播放进度 按照官方的写法 audioPlayed: function () { myAudio.play() setTieout(() =&g
推荐度:
导读微信小程序获取音频时长与实时获取播放进度问题:首先在没有播放音频之前,居然拿不到总时长 但是在播放之后也需要设置setTimeout来获取 所以在监听音频播放进度更新事件中获取。顺便获取当前播放进度 按照官方的写法 audioPlayed: function () { myAudio.play() setTieout(() =&g


首先在没有播放音频之前,居然拿不到总时长

但是在播放之后也需要设置setTimeout来获取

所以在监听音频播放进度更新事件中获取。顺便获取当前播放进度

按照官方的写法

audioPlayed: function () {
 myAudio.play()
 setTieout(() => {
 myAudio.onTimeUpdate(() => {
 console.log(myAudio.duration) //总时长
 console.log(myAudio.currentTime) //当前播放进度
 })
 }, 500)
}

但是这两个console都没有触发,很是神奇

增加延迟的时间也没有用

打断点都没有进去

但是!

audioPlayed: function () {
 myAudio.play()
 setTieout(() => {
 myAudio.currentTime
 myAudio.onTimeUpdate(() => {
 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 = '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来获取 所以在监听音频播放进度更新事件中获取。顺便获取当前播放进度 按照官方的写法 audioPlayed: function () { myAudio.play() setTieout(() =&g
推荐度:
标签: 获取 音频 问题
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top