IOS 调用uni-app的uni.chooseVideo 拍完视频点击结束录制bug
IOS 调用uni-app的uni.chooseVideo 拍完视频点击结束录制bug
示例代码:
// 选择视频
chooseVideo() {
if (this.type == 3 && !this.videoUrl) {
return;
}
uni.chooseVideo({
count: 1,
success: res => {
let videoPath = res.tempFilePath; // 视频路径
this.videoSize = res.size; // 图片大小
let pathLen = res.tempFilePath.split('/');
let fileType = pathLen[pathLen.length - 1].split('.')[1]; // 视频类型
let fileName = pathLen[pathLen.length - 1].split('.')[0]; // 视频名称
this.checkSize('video', this.videoSize, fileType, fileName, videoPath);
}
});
},
操作步骤:
- 点击选择视频,点击开始录制,点击完成录制
预期结果:
- 正常确认选择视频
实际结果:
- 不能确认
bug描述:
- IOS 调用uni.chooseVideo,点击结束录制,不能确认使用视频,回到了未点开始录制的样子,四张图依次是未开始,录制中,点击完成录制(不正常),点击完成录制(正常)的画面,高频出现,极少正常,测了ios16和17均有这种情况
截图
更多关于IOS 调用uni-app的uni.chooseVideo 拍完视频点击结束录制bug的实战教程也可以访问 https://www.itying.com/category-93-b0.html
2 回复
同样的问题,请问解决了?
更多关于IOS 调用uni-app的uni.chooseVideo 拍完视频点击结束录制bug的实战教程也可以访问 https://www.itying.com/category-93-b0.html
在使用 uni.chooseVideo
方法进行视频录制时,可能会遇到一些 Bug 或问题,特别是在 iOS 设备上。以下是一些常见的问题及其可能的解决方案:
1. 录制结束后无法正确返回视频路径
-
问题描述: 在 iOS 设备上,使用
uni.chooseVideo
录制视频后,点击“完成”按钮后没有正确返回视频路径,或者返回的路径为空。 -
解决方案:
- 确保在
uni.chooseVideo
的参数中正确设置了sourceType
为['camera']
,并且compressed
参数设置为false
,以避免压缩过程中出现问题。 - 检查是否有权限问题,确保应用已经获取了相机和麦克风的访问权限。
- 如果问题依然存在,可以尝试使用
uni.chooseMedia
方法,它是uni.chooseVideo
的替代方案,可能更稳定。
uni.chooseVideo({ sourceType: ['camera'], compressed: false, success: function (res) { console.log(res.tempFilePath); }, fail: function (err) { console.log(err); } });
- 确保在
2. 录制完成后无法预览视频
-
问题描述: 在 iOS 设备上,录制完视频后,点击“完成”按钮后无法预览视频,或者预览界面卡住。
-
解决方案:
- 确保
uni.previewVideo
方法被正确调用,并且传入的视频路径是有效的。 - 检查视频格式是否被 iOS 设备支持,通常
.mp4
格式是兼容的。 - 如果预览界面卡住,可能是由于视频文件过大或设备性能问题,可以尝试压缩视频或分片处理。
uni.previewVideo({ urls: [videoPath], current: 0 });
- 确保
3. 录制时间限制问题
-
问题描述: 在 iOS 设备上,录制视频时,默认录制时间较短(如 10 秒),无法录制更长时间的视频。
-
解决方案:
uni.chooseVideo
方法默认的maxDuration
参数可能限制了录制时间,可以手动设置maxDuration
来延长录制时间。
uni.chooseVideo({ sourceType: ['camera'], maxDuration: 60, // 设置最大录制时间为 60 秒 success: function (res) { console.log(res.tempFilePath); } });
4. 录制完成后无法保存到相册
-
问题描述: 在 iOS 设备上,录制完视频后,视频没有自动保存到相册。
-
解决方案:
uni.chooseVideo
方法默认不会将录制的视频保存到相册,需要手动调用uni.saveVideoToPhotosAlbum
方法将视频保存到相册。
uni.saveVideoToPhotosAlbum({ filePath: videoPath, success: function () { console.log('视频保存成功'); }, fail: function (err) { console.log('视频保存失败', err); } });