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


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 相关文章推荐
js操作textarea方法集合封装(兼容IE,firefox)
Feb 22 Javascript
JS打印gridview实现原理及代码
Feb 05 Javascript
JavaScript中的style.display属性操作
Mar 27 Javascript
解决extjs grid 不随窗口大小自适应的改变问题
Jan 26 Javascript
JS实现浏览器状态栏文字闪烁效果的方法
Oct 27 Javascript
javascript仿百度输入框提示自动下拉补全
Jan 07 Javascript
js选择器全面解析
Jun 27 Javascript
原生JS实现《别踩白块》游戏(兼容IE)
Feb 20 Javascript
详解Vue2中组件间通信的解决全方案
Jul 28 Javascript
详解webpack-dev-server 设置反向代理解决跨域问题
Apr 18 Javascript
JavaScript设计模式之命令模式实例分析
Jan 16 Javascript
JS变量提升原理与用法实例浅析
May 22 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
十大催泪虐心动漫电影,有几部你还没看
2020/03/04 日漫
Protoss热键控制
2020/03/14 星际争霸
php创建多级目录代码
2008/06/05 PHP
PHP中的str_repeat函数在JavaScript中的实现
2013/09/16 PHP
网站防止被刷票的一些思路与方法
2015/01/08 PHP
php编程实现简单的网页版计算器功能示例
2017/04/26 PHP
thinkphp5.1框架容器与依赖注入实例分析
2019/07/23 PHP
漂亮的提示信息(带箭头)
2007/03/21 Javascript
JavaScript数组的一些奇葩行为
2016/01/25 Javascript
JS实战篇之收缩菜单表单布局
2016/12/10 Javascript
javascript中的面向对象
2017/03/30 Javascript
Javascript实现基本运算器
2017/07/15 Javascript
vue组件实现文字居中对齐的方法
2017/08/23 Javascript
Django+Vue跨域环境配置详解
2018/07/06 Javascript
Vue 无限滚动加载指令实现方法
2019/05/28 Javascript
Node.js 实现简单的无侵入式缓存框架的方法
2019/07/21 Javascript
[04:40]2016国际邀请赛中国区预选赛全程TOP10镜头集锦
2016/07/01 DOTA
Python字符串处理函数简明总结
2015/04/13 Python
python监控linux内存并写入mongodb(推荐)
2017/09/11 Python
Python异步编程之协程任务的调度操作实例分析
2020/02/01 Python
python正则过滤字母、中文、数字及特殊字符方法详解
2020/02/11 Python
基于python实现检索标记敏感词并输出
2020/05/07 Python
pyqt5 textEdit、lineEdit操作的示例代码
2020/08/12 Python
html5使用canvas画空心圆与实心圆
2014/12/15 HTML / CSS
Monnier Freres中文官网:法国领先的奢侈品配饰在线零售商
2017/11/01 全球购物
马来西亚和新加坡巴士票在线预订:CatchThatBus
2018/11/17 全球购物
巴西儿童时尚购物网站:Dinda
2019/08/14 全球购物
药品采购员岗位职责
2014/02/08 职场文书
企业年度评优方案
2014/06/02 职场文书
乡镇消防安全责任书
2014/07/23 职场文书
国家领导干部党的群众路线教育实践活动批评与自我批评材料
2014/09/23 职场文书
2014年图书馆个人工作总结
2014/12/18 职场文书
长城导游词400字
2015/01/30 职场文书
PhpSpreadsheet中文文档 | Spreadsheet操作教程实例
2021/04/01 PHP
数据库连接池
2021/04/06 MySQL
解决Vmware虚拟机安装centos8报错“Section %Packages Does Not End With %End. Pane Is Dead”
2022/06/01 Servers