一、微信小程序 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();//當加載完畢後再播放
}
});
更多: