评论

innerAudioContext获取音频时长duration

innerAudioContext兼容获取音频时长duration

//首先创建一个innerAudioContext对象
let innerAudioContext = uni.createInnerAudioContext({
	useWebAudioImplement: true
})
innerAudioContext.src = encodeURI(this.audio)
innerAudioContext.autoplay = true //设置自动播放
innerAudioContext.volume = 0  //设置播放音量为0
innerAudioContext.startTime = 0
innerAudioContext.play();  //手动播放音频
const getDuration = () => {
	setTimeout(() => {
		if (innerAudioContext.duration === 0) {
			getDuration();
		} else {
			// 获取到正确的duration
			this.duration = innerAudioContext.duration;
                        //手动停止播放,并且销毁innerAudioContext对象
			innerAudioContext.stop();
			innerAudioContext.src = "";
			innerAudioContext.autoplay = false;
			innerAudioContext.destroy();
		}
	}, 100);
}
innerAudioContext.onPlay(getDuration);  //音频播放的时候调用获取音频长度的函数,onCanPlay有时候获取不到duration

//之后再创建新的innerAudioContext对象,正常播放音频


最后一次编辑于  07-25  
点赞 0
收藏
评论

1 个评论

  • 一咻
    一咻
    07-30

    找到问题了吗?是不是微信的bug?

    07-30
    赞同
    回复 1
    • ???
      ???
      07-30
      是微信的bug没办法只能这么取
      07-30
      回复
登录 后发表内容