uniapp innerAudioContext对象onUpdateTime无法调用

uniapp innerAudioContext对象onUpdateTime无法调用

1. 问题描述

近期在写微信小程序的音频播放组件,由于原生的

<srcipt>
	export default{
		created(){
			const audio = uni.innerAudioContext.creat()
			audio.onUpdateTime(data => {
				// 无法响应
				console.log(data)
			})
		}
	}
</srcipt>

2. 问题解决

经过多个博客的查看发现在调用onUpdateTime之前需要先绑定onPlay响应,并在内部访问一次duration属性才可以。
修改成下述文件

<srcipt>
	export default{
		created(){
			const audio = uni.innerAudioContext.creat()
			// 需要添加
			audio.onPlay(data => {
				console.log(data.duration)
			})
			audio.onUpdateTime(data => {
				// 无法响应
				console.log(data)
			})
		}
	}
</srcipt>

尾记

关于个人使用中发现,audioContext存在大量的同步方法,很有可能会导致几个问题:

  1. onUpdateTime调用不规律,如果要展示当前播放时长有可能会出现跳字的现象,从1直接变成3
  2. onUpdateTime初次调用慢,如果是第一次执行该音频的播放,一般会导致2秒左右的延迟才会触发,之后重复播放就不存在。个人猜测应该是duration属性没有实际获取的原因

你可能感兴趣的:(Vue学习)