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 回复
在微信、抖音等内置浏览器中,uni.chooseVideo 调用摄像头拍摄视频无回调的问题,通常是由于这些平台的浏览器环境对 navigator.mediaDevices.getUserMedia 或相关API的支持限制导致的。以下是关键原因和解决方案:
-
平台兼容性问题:微信、抖音等内置浏览器(基于X5内核或定制内核)可能限制了直接调用摄像头录制视频的权限,或对相关API的实现不完整。这会导致拍摄完成后无法正常触发回调函数。
-
回调卡死的可能原因:拍摄视频后页面卡死,通常是因为视频处理过程中出现异常(如权限未正确释放、内存占用过高),但错误未被捕获,导致JavaScript线程阻塞。在您的代码中,
complete回调后的uni.showModal可能因页面已卡死而无法执行。 -
解决方案:
- 添加错误回调:在
uni.chooseVideo中补充fail回调,捕获异常并输出日志,例如:uni.chooseVideo({ // ... 参数 success(res) { /* 处理成功 */ }, fail(err) { console.error('拍摄失败:', err); }, complete(res) { /* 原有逻辑 */ } });
- 添加错误回调:在


