微信小程序 InnerAudioContext seek后 onTimeUpdate不触发-已解决

原创
2021/10/15 19:34
阅读数 1.8K

一、微信小程序 InnerAudioContext seek后 onTimeUpdate不触发

分析原因:

由于音频加载延迟,切换到的位置没有缓存到的话,小程序就不在出发onTimeUpdate

        //播放进行中
        context.onTimeUpdate(() => {
            console.info(context.currentTime, context.duration);
            _this.setData({
                'audio.currentTime': context.currentTime,
                'audio.duration': context.duration,
                'audio.percent': context.currentTime / context.duration * 100,
            });
        });
    //切换进度
    sliderChange(e) {
        var _this = this;
        var val = e.detail.value;
        var second = context.duration * val / 100;
        context.seek(second);
    },

解决方案:

当音频加载中时候pause()暂停一下,当缓存成功后接着play() 。

var isWarting=false; //注意:全局变量

    
context.onWaiting(() => {
      if (isWating) {
        context.pause();
      }
      isWating = true;
    });
    context.onCanplay(() => {
      if (isWating) {
        context.play();
        isWating = false;
      }
    });

 

更多:

 微信小程序音频处理audio -自定义进度控制

 微信小程序音频处理audio 使用整理

 微信小程序获取Canvas实例-新版Api

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部