收藏
回答

InnerAudioContext 实例获取播放总时长问题

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug createInnerAudioContext 客户端 7.0.4 2.6.2


我在页面初始的时候实例化

audioObj =  wx.createInnerAudioContext

并且设置 src能够正常播放

但是我使用audio.duration 获取总时长0,但是播放1秒至2秒后才能够获取总时长,

这是小程序的bug?

能否在未播放之前获取到总时长,事件 onCanplay也无法获取


目前我用的是setTimeout 3秒后执行,但这个并不是一个优秀解决方案。还有其它的方案吗?在线求解

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

2 个回答

  • qgl
    qgl
    2022-07-28
    _this.data._laudioAudioContext.onCanplay(() => {
        if (_this.data.intervalLoadDuration) {
            return;
        }
        // 安卓要先play,再pause。。。。
        _this.data._laudioAudioContext.volume = 0;
        _this.data._laudioAudioContext.play();
        _this.data._laudioAudioContext.pause();
        _this.data._laudioAudioContext.volume = 1;
    
            // 一般第一次获取不到。。。
        _this.data.intervalLoadDuration = setInterval(() => {
            if (_this.data._laudioAudioContext.duration) {
                clearInterval(_this.data.intervalLoadDuration);
                console.log(_this.data._laudioAudioContext.duration)
            }
        }, 100);
    });
    
    2022-07-28
    有用
    回复
  • 痛快科技
    痛快科技
    2019-07-12

    可以在

    onTimeUpdate

    回调中执行

    2019-07-12
    有用
    回复
登录 后发表内容