微信小程序 InnerAudioContext seek後 onTimeUpdate不觸發-已解決

一、微信小程序 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() 。

        context.onWaiting(() => {
            context.pause(); //當沒有加載時候暫停
        });
        context.onCanplay(() => {
            if(_this.data.audio.isPlaying){
                context.play();//當加載完畢後再播放
            }
        });

 

更多:

 微信小程序音頻處理audio -自定義進度控制

 微信小程序音頻處理audio 使用整理

 微信小程序獲取Canvas實例-新版Api

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章