我现在可以在接口返回数据中拿到音频地址,如何在音频不播放前获取到时长呢,求解答,(我想在进入页面就把时长渲染到页面上)
不要质疑我们看文档的能力,按照楼主的意思,在播放之前获取音频长度,目前没有能实现的方法。
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
updateTime: function() {
let _this = this;
setTimeout(function(){
let duration = innerAudioContext.duration;
if (duration == 0) {
_this.updateTime();
} else {
//
}
},100);
}
innerAudioContext.onCanplay(this.updateTime);
这样可以获取到
请参阅文档 wx.createInnerAudioContext: https://mp.weixin.qq.com/debug/wxadoc/dev/api/createInnerAudioContext.html