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均有这种情况

截图

截图1 截图2 截图3 截图4


更多关于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);
        }
    });
回到顶部