收藏
回答

如何在音频不播放前,获取音频时长duration

我现在可以在接口返回数据中拿到音频地址,如何在音频不播放前获取到时长呢,求解答,(我想在进入页面就把时长渲染到页面上)

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

8 个回答

  • 邓坤力
    邓坤力
    2017-12-20

    请参阅文档 wx.createInnerAudioContext: https://mp.weixin.qq.com/debug/wxadoc/dev/api/createInnerAudioContext.html


    2017-12-20
    有用
    回复 6
    • Anx&
      Anx&
      2018-05-17
      文档中描述的行为不符合实际表现
      2018-05-17
      5
      回复
    • 2019-05-10

      请官方试一下好吧

      2019-05-10
      回复
    • 阿噗
      阿噗
      2020-05-11
      呵呵
      2020-05-11
      回复
    • 布谷
      布谷
      2020-09-02
      呵呵
      2020-09-02
      回复
    • 不可说
      不可说
      2021-01-11
      获取不到啊,官方大哥,能不能重视下啊,你们都不测试的吗?
      2021-01-11
      回复
    查看更多(1)
  • Bat
    Bat
    2018-04-19

    updateTime: function() {

        let _this = this;

        setTimeout(function(){

            let duration = innerAudioContext.duration;


            if (duration == 0) {

                _this.updateTime();

            } else {

                //

            }

        },100);

    }

    innerAudioContext.onCanplay(this.updateTime);


    这样可以获取到

    2018-04-19
    有用 6
    回复
  • 刘畅
    刘畅
    2017-12-26

    不要质疑我们看文档的能力,按照楼主的意思,在播放之前获取音频长度,目前没有能实现的方法。

    innerAudioContext.onCanplay(() => {
            console.log('音频对象:', innerAudioContext);
            console.log('时长:', innerAudioContext.duration);
        })
        innerAudioContext.onTimeUpdate(() => {
            console.log('进度更新', innerAudioContext)
            console.log('时长:', innerAudioContext.duration);
        })
        innerAudioContext.onPlay(() => {
            console.log('开始播放', innerAudioContext)
            console.log('时长:', innerAudioContext.duration);
        })
        innerAudioContext.onStop(() => {
            console.log('停止播放', innerAudioContext)
            console.log('时长:', innerAudioContext.duration);
        })
        innerAudioContext.onError((res) => {
            console.log(res.errMsg)
            console.log(res.errCode)
        })


    只有onTimeUpdate  和  onStop  可以获取到时长,其他事件里面获取到的都是0

    2017-12-26
    有用 3
    回复
  • Elise
    Elise
    2021-06-03

    想要时长.....

    2021-06-03
    有用
    回复
  • 2019-04-12

    哎我也需要这个。。。但是我也没有找到。。。

    2019-04-12
    有用
    回复 2
    • The-fighter-
      The-fighter-
      2019-07-16
      录音的时候把时长传给后台,等展示的时候,时长在返回来就行了
      2019-07-16
      1
      回复
    • 姚宓伽
      姚宓伽
      2020-07-31回复The-fighter-
      不一定是录音啊,在线音频怎么办
      2020-07-31
      回复
  • The-fighter-
    The-fighter-
    2017-12-26

    好的,谢谢解答,我这边现在是在录音的时候,把时长传到后台了,等到请求的时候,可以直接拿到时长并赋值

    2017-12-26
    有用
    回复
  • The-fighter-
    The-fighter-
    2017-12-20

    该接口只有在播放的时候才能拿到音频时长吗

    2017-12-20
    有用
    回复
  • The-fighter-
    The-fighter-
    2017-12-20

    你好,主要是我使用该方法后,时长为0.

    const innerAudioContext = wx.createInnerAudioContext()

    innerAudioContext.autoplay = true

    innerAudioContext.src = 'https:xxxx.mp3'

    var a = innerAudioContext.duration

    console.log(a)

    打印a为0,这是怎么回事,求解答


    2017-12-20
    有用
    回复 1
    • I'm null🧐
      I'm null🧐
      2020-08-14
      同问
      2020-08-14
      回复
登录 后发表内容