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


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数据分享
May 12 Javascript
JQuery魔力之$("tagName")与selector
Mar 05 Javascript
百度坐标(BD09)、国测局坐标(火星坐标,GCJ02)、和WGS84坐标系之间的转换
Feb 19 Javascript
Bootstrap滚动监听(Scrollspy)插件详解
Apr 26 Javascript
JS实现复制内容到剪贴板功能兼容所有浏览器(推荐)
Jun 17 Javascript
JavaScript实现的冒泡排序法及统计相邻数交换次数示例
Apr 26 Javascript
微信小程序实现预览图片功能
Oct 22 Javascript
laydate如何根据开始时间或者结束时间限制范围
Nov 15 Javascript
vuex 动态注册方法 registerModule的实现
Jul 03 Javascript
微信小程序实现语音识别转文字功能及遇到的坑
Aug 02 Javascript
详解Nuxt内导航栏的两种实现方式
Apr 16 Javascript
ant-design-vue按需加载的坑的解决
May 14 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 while循环得到循环次数
2013/10/26 PHP
MySql数据库查询结果用表格输出PHP代码示例
2015/03/20 PHP
PHP判断密码强度的方法详解
2017/05/26 PHP
php使用curl下载指定大小的文件实例代码
2017/09/30 PHP
(JS实现)MapBar中坐标的加密和解密的脚本
2007/05/16 Javascript
jquery easyui的tabs使用时的问题
2010/03/23 Javascript
Javascript中找到子元素在父元素内相对位置的代码
2012/07/21 Javascript
JQuery表格内容过滤的实现方法
2013/07/05 Javascript
基于javascript的JSON格式页面展示美化方法
2014/07/02 Javascript
node.js中的fs.realpath方法使用说明
2014/12/16 Javascript
js实现同一页面多个运动效果的方法
2015/04/10 Javascript
JavaScript中的Math.LN2属性用法详解
2015/06/12 Javascript
在jQuery中使用$而避免跟其它库产生冲突的方法
2015/08/13 Javascript
浅析jQuery 遍历函数,javascript中的each遍历
2016/05/25 Javascript
使用Script元素发送JSONP请求的方法
2016/06/12 Javascript
node文件批量重命名的方法示例
2017/10/23 Javascript
nodejs简单实现TCP服务器端和客户端的聊天功能示例
2018/01/04 NodeJs
vue2.0实现列表数据增加和删除
2020/06/17 Javascript
微信小程序实现转盘抽奖
2020/09/21 Javascript
[01:27:30]LGD vs Newbee 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
从零学python系列之教你如何根据图片生成字符画
2014/05/23 Python
Python中一些自然语言工具的使用的入门教程
2015/04/13 Python
Python中__slots__属性介绍与基本使用方法
2018/09/05 Python
用Python爬取QQ音乐评论并制成词云图的实例
2019/08/24 Python
python输出pdf文档的实例
2020/02/13 Python
vscode配置anaconda3的方法步骤
2020/08/08 Python
IE10 Error.stack 让脚本调试更加方便快捷
2013/04/22 HTML / CSS
ROSEFIELD手表荷兰官方网上商店:北欧极简设计女士腕表品牌
2018/01/24 全球购物
小学教师师德承诺书
2014/05/23 职场文书
班主任师德师风自我剖析材料
2014/10/02 职场文书
2014年乡镇党建工作总结
2014/11/11 职场文书
党员“一帮一”活动总结
2015/05/07 职场文书
网聊搭讪开场白
2015/05/28 职场文书
2015上半年个人工作总结
2015/07/27 职场文书
入党申请书格式
2019/06/20 职场文书
PyTorch中permute的使用方法
2022/04/26 Python