收藏
回答

如何获取到音频文件是时长,duration获得是0

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug wx.createInnerAudioContext() 工具 6.0.4 2.7.1

this.innerAudioContext.src = data.sound;

let duration = this.innerAudioContext.duration;

console.log(duration)





输出来的是0

回答关注问题邀请回答
收藏

5 个回答

  • 2019-11-21

    需要先写这个函数:innerAudioContext.onPlay(function callback),再调用InnerAudioContext.onTimeUpdate(function callback),然后在这个函数中获取音频时长即可。我试了,这个方法可以

    2019-11-21
    有用 3
    回复 5
    • 2020-05-26
      果然可以,大兄弟!
      2020-05-26
      回复
    • 2020-06-05
      果然可以,大兄弟
      2020-06-05
      回复
    • 03-18
      我现在是必须要再加个定时器,在微信开发者工具中才可以拿到长度。而且定时器log的内容必须和onTimeUpdate里的保持一致才行
      03-18
      回复
    • shmily
      shmily
      04-27回复
      有没有不加定时器的解决方案
      04-27
      回复
    • BILYHO😳
      BILYHO😳
      04-30回复shmily
      未来时间 - 当前时间咯
      04-30
      回复
  • 方贤明
    方贤明
    2019-08-23

    还是不兼容各种手机,安卓的 就获取不到 时长

    2019-08-23
    有用 3
    回复
  • 元创科技
    元创科技
    2020-03-02

    很多时候需求都是在不播放音频的情况下获取音频时长的,这个微信的api暂时好像没办法做到

    2020-03-02
    有用 2
    回复
  • 初拥
    初拥
    01-14

    很多时候需求都是在不播放音频的情况下获取音频时长的,请问现在微信官方有解决这块的api吗?官方可否回复一下

    01-14
    有用
    回复
  • 社区技术运营专员-小柿子
    社区技术运营专员-小柿子
    2019-06-10

    麻烦提供能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)

    2019-06-10
    有用
    回复 3
    • 小样
      小样
      2019-06-10

      官方示例,自己试一下


      const innerAudioContext = wx.createInnerAudioContext()

      innerAudioContext.autoplay = true

      innerAudioContext.src = 'http://ws.stream.qqmusic.qq.com/M500001VfvsJ21xFqb.mp3?guid=ffffffff82def4af4b12b3cd9337d5e7&uin=346897220&vkey=6292F51E1E384E061FF02C31F716658E5C81F5594D561F2E88B854E81CAAB7806D5E4F103E55D33C16F3FAC506D1AB172DE8600B37E43FAD&fromtag=46'

      console.log(innerAudioContext.duration)

      innerAudioContext.onPlay(() => {

       console.log('开始播放')

      })

      innerAudioContext.onError((res) => {

       console.log(res.errMsg)

       console.log(res.errCode)

      })


      2019-06-10
      回复
    • KeieT
      KeieT
      2019-06-11

      我也遇到这个问题,我在canPlay事件的时候打印duration也是0

      2019-06-11
      回复
    • le
      le
      2019-06-19

      setTimeout 可以拿到

      2019-06-19
      回复
登录 后发表内容