时间:2019-05-07 来源:小程序工厂
邓***:
请参阅文档 wx.createInnerAudioContext: https://mp.weixin.qq.com/debug/wxadoc/dev/api/createInnerAudioContext.html
T***:
你好,主要是我使用该方法后,时长为0.
const innerAudioContext = wx.createInnerAudioContext()
innerAudioContext.autoplay = true
innerAudioContext.src = 'https:xxxx.mp3'
var a = innerAudioContext.duration
console.log(a)
打印a为0,这是怎么回事,求解答
微信小程序弹框在iphone上的文字描述有白色底,微信爸爸什么时候会更新解决? ...
T***:
该接口只有在播放的时候才能拿到音频时长吗
D***:
不要质疑我们看文档的能力,按照楼主的意思,在播放之前获取音频长度,目前没有能实现的方法。
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
T***:
好的,谢谢解答,我这边现在是在录音的时候,把时长传到后台了,等到请求的时候,可以直接拿到时长并赋值
OnWebviewEvent: WebviewId: 7 not found
B***:
updateTime: function() {
let _this = this;
setTimeout(function(){
let duration = innerAudioContext.duration;
if (duration == 0) {
_this.updateTime();
} else {
//
}
},100);
}
innerAudioContext.onCanplay(this.updateTime);
这样可以获取到