我在页面初始的时候实例化
audioObj = wx.createInnerAudioContext
并且设置 src能够正常播放
但是我使用audio.duration 获取总时长0,但是播放1秒至2秒后才能够获取总时长,
这是小程序的bug?
能否在未播放之前获取到总时长,事件 onCanplay也无法获取
目前我用的是setTimeout 3秒后执行,但这个并不是一个优秀解决方案。还有其它的方案吗?在线求解
框架类型 | 问题类型 | API/组件名称 | 终端类型 | 微信版本 | 基础库版本 |
---|---|---|---|---|---|
小程序 | Bug | createInnerAudioContext | 客户端 | 7.0.4 | 2.6.2 |
2 个回答
_this.data._laudioAudioContext.onCanplay(() => { if (_this.data.intervalLoadDuration) { return; } // 安卓要先play,再pause。。。。 _this.data._laudioAudioContext.volume = 0; _this.data._laudioAudioContext.play(); _this.data._laudioAudioContext.pause(); _this.data._laudioAudioContext.volume = 1; // 一般第一次获取不到。。。 _this.data.intervalLoadDuration = setInterval(() => { if (_this.data._laudioAudioContext.duration) { clearInterval(_this.data.intervalLoadDuration); console.log(_this.data._laudioAudioContext.duration) } }, 100); });
可以在
onTimeUpdate
回调中执行