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


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 相关文章推荐
一个多次搜索+多次传值的解决方案
Jan 20 Javascript
javascript onmouseout 解决办法
Jul 17 Javascript
25个非常棒的jQuery滑块插件和教程小结
Sep 02 Javascript
jQuery UI Autocomplete 体验分享
Feb 14 Javascript
js 操作select和option常用代码整理
Dec 13 Javascript
详解微信小程序开发之——wx.showToast(OBJECT)的使用
Jan 18 Javascript
浅谈Vue的加载顺序探讨
Oct 25 Javascript
webpack打包并将文件加载到指定的位置方法
Feb 22 Javascript
详解Vue项目部署遇到的问题及解决方案
Jan 11 Javascript
js中数组对象去重的两种方法
Jan 18 Javascript
react中使用css的7中方式(最全总结)
Feb 11 Javascript
Vue.js自定义指令学习使用详解
Oct 19 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 日漫
PHP 和 MySQL 基础教程(四)
2006/10/09 PHP
编写兼容IE和FireFox的脚本
2009/05/18 Javascript
浅析javascript 定时器
2014/12/23 Javascript
jquery mobile 移动web(5)
2015/12/20 Javascript
javascript匀速运动实现方法分析
2016/01/08 Javascript
JavaScript Array对象详解
2016/03/01 Javascript
jQuery实现订单提交页发送短信功能前端处理方法
2016/07/04 Javascript
JS给Array添加是否包含字符串的简单方法
2016/10/29 Javascript
Angular.JS中指令ng-if、ng-show/ng-hide和ng-switch的使用教程
2017/05/07 Javascript
AngularJS中使用ngModal模态框实例
2017/05/27 Javascript
jQuery为某个div加入行样式
2017/06/09 jQuery
vue.js前后端数据交互之提交数据操作详解
2018/04/24 Javascript
微信小程序上传文件到阿里OSS教程
2019/05/20 Javascript
利用React高阶组件实现一个面包屑导航的示例
2020/08/23 Javascript
Python 修改列表中的元素方法
2018/06/26 Python
Python多进程原理与用法分析
2018/08/21 Python
Windows下安装Scrapy
2018/10/17 Python
python图形工具turtle绘制国际象棋棋盘
2019/05/23 Python
python实现桌面气泡提示功能
2019/07/29 Python
python点击鼠标获取坐标(Graphics)
2019/08/10 Python
对python中的*args与**kwgs的含义与作用详解
2019/08/28 Python
python 遍历pd.Series的index和value
2019/11/26 Python
使用python切片实现二维数组复制示例
2019/11/26 Python
pytest fixtures装饰器的使用和如何控制用例的执行顺序
2021/01/28 Python
跟单文员的岗位职责
2013/11/14 职场文书
历史专业个人求职信范文
2013/12/07 职场文书
村党支部公开承诺书
2014/05/29 职场文书
第二批党的群众路线教育实践活动个人整改方案
2014/10/31 职场文书
骨干教师申报材料
2014/12/17 职场文书
2015年教师工作总结范文
2015/03/31 职场文书
新课程改革心得体会
2016/01/22 职场文书
2016中秋晚会开幕词
2016/03/03 职场文书
朋友圈早安励志语录!
2019/07/08 职场文书
Python爬取英雄联盟MSI直播间弹幕并生成词云图
2021/06/01 Python
Linux中Nginx的防盗链和优化的实现代码
2021/06/20 Servers