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


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 相关文章推荐
Javascript基础教程之数据类型 (数值 Number)
Jan 18 Javascript
ECMAScript6函数剩余参数(Rest Parameters)
Jun 12 Javascript
javascript实现类似于新浪微博搜索框弹出效果的方法
Jul 27 Javascript
Bootstrap每天必学之表格
Nov 23 Javascript
使用PHP+JavaScript将HTML页面转换为图片的实例分享
Apr 18 Javascript
创建基于Bootstrap的下拉菜单的DropDownList的JQuery插件
Jun 02 Javascript
Bootstrap modal使用及点击外部不消失的解决方法
Dec 13 Javascript
jQuery创建及操作xml格式数据示例
May 26 jQuery
纯javascript前端实现base64图片下载(兼容IE10+)
Sep 14 Javascript
微信小程序 wepy框架与iview-weapp的用法详解
Apr 10 Javascript
JS把字符串格式的时间转换成几秒前、几分钟前、几小时前、几天前等格式
Jul 10 Javascript
js实现录音上传功能
Nov 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
php 中英文语言转换类代码
2011/08/11 PHP
php判断文件夹是否存在不存在则创建
2015/04/09 PHP
Zend Framework教程之Application用法实例详解
2016/03/14 PHP
浅析php如何实现App常用的秒发功能
2016/08/03 PHP
laravel如何开启跨域功能示例详解
2017/08/31 PHP
Mootools 1.2教程 输入过滤第一部分(数字)
2009/09/15 Javascript
JavaScript 常见对象类创建代码与优缺点分析
2009/12/07 Javascript
常用DOM整理
2015/06/16 Javascript
JQ技术实现注册页面带有校验密码强度
2015/07/27 Javascript
JS实现可编辑的后台管理菜单功能【附demo源码下载】
2016/09/13 Javascript
jQuery使用ajax方法解析返回的json数据功能示例
2017/01/10 Javascript
JavaScript的for循环中嵌套一个点击事件的问题解决
2017/03/03 Javascript
Vue2.0使用过程常见的一些问题总结学习
2017/04/10 Javascript
基于jQuery对象和DOM对象和字符串之间的转化实例
2017/08/08 jQuery
vue-router3.0版本中 router.push 不能刷新页面的问题
2018/05/10 Javascript
微信小程序使用swiper组件实现类3D轮播图
2018/08/29 Javascript
在vue中多次调用同一个定义全局变量的实例
2018/09/25 Javascript
jQuery实现为table表格动态添加或删除tr功能示例
2019/02/19 jQuery
详解用JS添加和删除class类名
2019/03/25 Javascript
element的el-table中记录滚动条位置的示例代码
2019/11/06 Javascript
解决TensorFlow GPU版出现OOM错误的问题
2020/02/03 Python
如何基于Python和Flask编写Prometheus监控
2020/11/25 Python
HTML5本地存储之Database Storage应用介绍
2013/01/06 HTML / CSS
猫途鹰英国网站:TripAdvisor英国(旅游社区和旅游评论)
2016/08/30 全球购物
Perfume’s Club法国站:购买香水和化妆品
2019/05/02 全球购物
英国门销售网站:Green Tree Doors
2020/01/07 全球购物
测试驱动开发的主要步骤是什么
2014/12/10 面试题
财务总监岗位职责
2014/03/07 职场文书
《春到梅花山》教学反思
2014/04/16 职场文书
应届生求职信
2014/05/31 职场文书
大专应届毕业生求职信
2014/07/15 职场文书
我心目中的好老师活动方案
2014/08/19 职场文书
单位介绍信格式
2015/01/31 职场文书
你会写报告?产品体验报告到底该怎么写?
2019/08/14 职场文书
Win11显卡控制面板打开显卡设置方法
2022/04/20 数码科技
Python四款GUI图形界面库介绍
2022/06/05 Python