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


Posted in Javascript onAugust 28, 2018

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

但是在播放之后也需要设置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了。这个可以声明个个变量解决。

总结

以上所述是小编给大家介绍的微信小程序获取音频时长与实时获取播放进度问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
asp.net和asp下ACCESS的参数化查询
Jun 11 Javascript
jQuery学习笔记之jQuery选择器的使用
Dec 22 Javascript
javascript中clone对象详解
Dec 03 Javascript
js实现网页右上角滑出会自动消失大幅广告的方法
Feb 27 Javascript
基于dropdown.js实现的两款美观大气的二级导航菜单
Sep 02 Javascript
bootstrap实现弹窗和拖动效果
Jan 03 Javascript
jquery表单插件Autotab使用方法详解
Jun 24 Javascript
JS之获取样式的简单实现方法(推荐)
Sep 13 Javascript
JavaScript表单验证实现代码
May 22 Javascript
JS SetInterval 代码实现页面轮询
Aug 11 Javascript
VueJs使用Amaze ui调整列表和内容页面
Nov 30 Javascript
Vue解析剪切板图片并实现发送功能
Feb 04 Javascript
vue表单自定义校验规则介绍
Aug 28 #Javascript
vue+axios+mock.js环境搭建的方法步骤
Aug 28 #Javascript
Vue实现用户自定义字段显示数据的方法
Aug 28 #Javascript
浅谈VUE单页应用首屏加载速度优化方案
Aug 28 #Javascript
浅谈redux以及react-redux简单实现
Aug 28 #Javascript
Vue封装的可编辑表格插件方法
Aug 28 #Javascript
JavaScript使用递归和循环实现阶乘的实例代码
Aug 28 #Javascript
You might like
PHP中array_merge和array相加的区别分析
2013/06/17 PHP
php实现文件上传及头像预览功能
2017/01/15 PHP
JS代码格式化和语法着色V2
2006/10/14 Javascript
JS中简单的实现像C#中using功能(有源码下载)
2007/01/09 Javascript
使用jquery实现div的tab切换实例代码
2013/05/27 Javascript
常用的JavaScript验证正则表达式汇总
2013/11/26 Javascript
JQuery 控制内容长度超出规定长度显示省略号
2014/05/23 Javascript
jQuery性能优化技巧分析
2015/02/20 Javascript
jQuery.cookie.js使用方法及相关参数解释
2017/03/06 Javascript
node koa2实现上传图片并且同步上传到七牛云存储
2017/07/31 Javascript
微信JS-SDK updateAppMessageShareData安卓不能自定义分享详解
2019/03/29 Javascript
通过微信公众平台获取公众号文章的方法示例
2019/12/25 Javascript
JavaScript find()方法及返回数据实例
2020/04/30 Javascript
es5 类与es6中class的区别小结
2020/11/09 Javascript
[03:11]完美世界DOTA2联赛PWL DAY8集锦
2020/11/09 DOTA
Python 随机生成中文验证码的实例代码
2013/03/20 Python
Python中的对象,方法,类,实例,函数用法分析
2015/01/15 Python
Python实现测试磁盘性能的方法
2015/03/12 Python
Python中import导入上一级目录模块及循环import问题的解决
2016/06/04 Python
根据DataFrame某一列的值来选择具体的某一行方法
2018/07/03 Python
Python with关键字,上下文管理器,@contextmanager文件操作示例
2019/10/17 Python
python读取excel数据绘制简单曲线图的完整步骤记录
2020/10/30 Python
Python实现王者荣耀自动刷金币的完整步骤
2021/01/22 Python
HTML5 Canvas 破碎重组的视频特效的示例代码
2019/09/24 HTML / CSS
html5 Canvas画图教程(1)—画图的基本常识
2013/01/09 HTML / CSS
物流管理应届生求职信
2013/11/07 职场文书
体育专业个人求职信范文
2013/12/27 职场文书
教你打造完美的创业计划书
2014/01/06 职场文书
个人担保书格式范文
2014/05/12 职场文书
经典团队口号大全
2014/06/21 职场文书
党员干部四风问题整改措施思想汇报
2014/10/12 职场文书
学生检讨书范文
2015/01/27 职场文书
获奖感言怎么写
2015/07/31 职场文书
2016秋季田径运动会广播稿
2015/12/21 职场文书
2016年先进班集体事迹材料
2016/02/26 职场文书
Mysql忘记密码解决方法
2022/02/12 MySQL