uni-app中uni.chooseVideo拍视频功能在微信内置浏览器和抖音内无任何回调,选择系统文件内的视频正常

uni-app中uni.chooseVideo拍视频功能在微信内置浏览器和抖音内无任何回调,选择系统文件内的视频正常

开发环境 版本号 项目创建方式
Windows win10 HBuilderX

运行到微信,uc, 抖音 拍视频没任何回调,拍完视频返回原页面, 原页面卡死 .选择系统文件正常

示例代码:

// console.log('相机限制的时长', maxDuration_n);
uni.chooseVideo({
	count: 1,
	maxDuration: maxDuration_n, //时间限制
	// mediaType: ['video'],
	sourceType: ['camera', 'album'],
	complete(res) {
		console.log('真实时长1', res.duration);  
		res.duration = res.duration.toFixed(0);  
		console.log('真实时长2', res.duration);  
		if (res.duration < 2 || res.duration > 4) {  
			uni.showModal({  
				content: '请上传3s的视频'  
			});  
			return;  
		}  
		let tempFilePath = res.tempFilePath  
		let upload_options = JSON.stringify(res);  
		uni.showModal({  
			title:'提示',  
			content:upload_options.tempFilePath,  
			confirmText:'确认',  
			success:function(res){  

			}  
		});
	}
}

操作步骤:

运行到微信,uc, 抖音 拍视频没任何回调

预期结果:

运行到微信,uc, 抖音 拍视频成功回调 跳转下一个页面中

实际结果:

运行到微信,uc, 抖音 拍视频成功回调 跳转下一个页面中


更多关于uni-app中uni.chooseVideo拍视频功能在微信内置浏览器和抖音内无任何回调,选择系统文件内的视频正常的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

ios只有自带的浏览器可以, 其他均不行。

更多关于uni-app中uni.chooseVideo拍视频功能在微信内置浏览器和抖音内无任何回调,选择系统文件内的视频正常的实战教程也可以访问 https://www.itying.com/category-93-b0.html


在微信、抖音等内置浏览器中,uni.chooseVideo 调用摄像头拍摄视频无回调的问题,通常是由于这些平台的浏览器环境对 navigator.mediaDevices.getUserMedia 或相关API的支持限制导致的。以下是关键原因和解决方案:

  1. 平台兼容性问题:微信、抖音等内置浏览器(基于X5内核或定制内核)可能限制了直接调用摄像头录制视频的权限,或对相关API的实现不完整。这会导致拍摄完成后无法正常触发回调函数。

  2. 回调卡死的可能原因:拍摄视频后页面卡死,通常是因为视频处理过程中出现异常(如权限未正确释放、内存占用过高),但错误未被捕获,导致JavaScript线程阻塞。在您的代码中,complete 回调后的 uni.showModal 可能因页面已卡死而无法执行。

  3. 解决方案

    • 添加错误回调:在 uni.chooseVideo 中补充 fail 回调,捕获异常并输出日志,例如:
      uni.chooseVideo({
        // ... 参数
        success(res) { /* 处理成功 */ },
        fail(err) { console.error('拍摄失败:', err); },
        complete(res) { /* 原有逻辑 */ }
      });
回到顶部