Uniapp使用InnerAudioContext返回内部 audio 上下文 ,获取不到duration当前音频的长度,如何解决?

原因:其实是wx的bug,这个问题在开发环境中,并不会遇到。而是真机测试或发版后,就获取不到duration。

解决:我们只要去手动播放音频后,就会抓取到duration。

代码示例

关键代码

this.audioContext.play(); //手动播放音频

完整代码

javascript 复制代码
AudioPlay(file) {
				this.audioContext = uni.createInnerAudioContext({
					useWebAudioImplement: true
				});
				this.audioContext.src = file.path;
				this.audioContext.startTime = 0;
				this.audioContext.play(); //手动播放音频
				this.audioContext.stop(); //手动停止播放音频
				this.audioContext.onPlay(() => {
					console.log('开始播放');
				})
                 //调用onCanplay使音频进入可以播放状态
				this.audioContext.onCanplay(() => {
					console.log(_this?.audioContext?.duration, "duration");
					let intervalID = setInterval(() => {
						if (this?.audioContext?.duration !== 0) {
							const time = Math.floor(this.audioContext.duration);
							clearInterval(intervalID); // 清除定时器
                            console.log("当前音频长度",this?.audioContext?.duration, "duration");
							//这里可以做音频的限制
							if ( time > 60) {
								this.audioContext = null;
								uni.showToast({
									icon: "none",
									title: "音频不能超过1分钟",
								});
							} 
						}
					}, 500);
					
				});
			},
相关推荐
余~~185381628002 小时前
碰一碰发视频后端源码技术开发详解,支持OEM
音视频
xfxTab2 小时前
uniapp中Nvue白屏问题 ReferenceError: require is not defined
uni-app
Say-hai3 小时前
FFMPEG解码+SDL2播放视频
ffmpeg·音视频
于慨12 小时前
uniapp打包h5应用如何开启history模式,以及资源管理器直接打开存在问题
uni-app
易我数据恢复大师13 小时前
有没有免费提取音频的软件?音频编辑软件介绍!
电脑·音视频·软件·音频提取
姥姥家的饭15 小时前
uniapp 文本转语音
uni-app
深圳启明云端科技15 小时前
潮玩设备AI语音交互方案,ESP32-S3芯片模组物联网通信技术
网络·物联网·音视频·智能家居
cdprinter17 小时前
涉密行业跨网数据摆渡,光盘审计刻录输出,生产音视频刻录,电子档案长期保存应用
安全·自动化·音视频
素**颜17 小时前
uniapp 基于xgplayer(西瓜视频) + renderjs开发,实现APP视频播放
javascript·uni-app·音视频
畅联云平台17 小时前
美畅物联丨如何在视频汇聚平台上添加RTMP主动推流设备?
网络协议·音视频