uni-app uni.chooseVideo 参数compressed为false时 在ios17上无法选择视频

发布于 1周前 作者 sinazl 来自 Uni-App

uni-app uni.chooseVideo 参数compressed为false时 在ios17上无法选择视频

产品分类

uniapp/App

开发环境、版本号及项目创建方式

信息
PC开发环境操作系统 Windows
PC开发环境操作系统版本号 win10
HBuilderX类型 正式
HBuilderX版本号 4.36
手机系统 iOS
手机系统版本号 iOS 17
手机厂商 苹果
手机机型 13
页面类型 vue
vue版本 vue2
打包方式 云端
项目创建方式 HBuilderX

示例代码

chooseVideo: function() {  
    uni.chooseVideo({  
        camera: this.cameraList[this.cameraIndex].value,  
        sourceType: sourceType[this.sourceTypeIndex],  
        compressed: false,  
        success: (res) => {  
            this.src = res.tempFilePath  
        },  
        fail: (err) => {  
            // #ifdef MP  
            uni.getSetting({  
                success: (res) => {  
                    let authStatus = false;  
                    switch (this.sourceTypeIndex) {  
                        case 0:  
                            authStatus = res.authSetting['scope.camera'];  
                            break;  
                        case 1:  
                            authStatus = res.authSetting['scope.album'];  
                            break;  
                        case 2:  
                            authStatus = res.authSetting['scope.album'] && res  
                                .authSetting['scope.camera'];  
                            break;  
                        default:  
                            break;  
                    }  
                    if (!authStatus) {  
                        uni.showModal({  
                            title: '授权失败',  
                            content: 'Hello uni-app需要从您的相机或相册获取视频,请在设置界面打开相关权限',  
                            success: (res) => {  
                                if (res.confirm) {  
                                    uni.openSetting()  
                                }  
                            }  
                        })  
                    }  
                }  
            })  
            // #endif  
        }  
    })  
}

操作步骤

在官方的example代码中,修改参数 compressed: false,即可复现。

预期结果

可以不压缩选择视频。

实际结果

compressed: false 的时候,选择不了视频,报错:chooseVideo:fail [File:-11800]这项操作无法完成。当为 true 时,可以选择。

bug描述

uni.chooseVideocompressed 参数为 false 时,选择不了视频,报错:chooseVideo:fail [File:-11800]这项操作无法完成。使用官方的例程也是同样的现象。


2 回复

这个问题使用自定义基座或者更新到4.44


针对您提到的 uni-appuni.chooseVideo 方法在 iOS 17 上设置 compressedfalse 时无法选择视频的问题,这通常是由于平台兼容性问题或者API行为变更导致的。在 uni-app 框架中,uni.chooseVideo 方法的 compressed 参数用于控制是否压缩选中的视频文件。设置为 false 时,意味着用户选中的视频将不会被压缩,从而可能保持较高的分辨率和文件大小。

虽然 uni-app 官方文档通常会提供基本的API使用方法,但针对特定平台(如iOS 17)的问题,可能需要额外的处理或者利用平台特性进行适配。以下是一个基本的 uni.chooseVideo 使用示例,同时包含一些可能的调试思路,但请注意,直接代码修复可能受限于具体的SDK版本和平台行为:

uni.chooseVideo({
    sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机
    maxDuration: 60, // 最大录制时长,单位秒
    camera: 'back', // 使用前置或后置摄像头
    compressed: false, // 不压缩视频
    success: function (res) {
        console.log('选择视频成功:', res.tempFilePath);
        // 这里可以处理选中的视频路径,比如上传等操作
    },
    fail: function (err) {
        console.error('选择视频失败:', err);
        // 在iOS 17上,如果compressed为false导致失败,这里会捕获到错误信息
        // 可以根据错误信息进一步调试或提供用户友好的提示
    }
});

针对iOS 17的特定问题,您可以考虑以下几个方向:

  1. 检查SDK版本:确保您使用的 uni-app 和相关依赖库(如HBuilderX)是最新版本,因为新版本可能修复了旧版本的bug。

  2. 平台适配:如果问题依旧存在,考虑在调用 uni.chooseVideo 前检查平台信息,对iOS 17做特殊处理,比如临时设置 compressedtrue 或者提供用户引导说明。

  3. 反馈问题:如果上述方法都不能解决问题,建议向 uni-app 的官方社区或者GitHub仓库提交issue,附上详细的复现步骤和日志信息,以便开发者团队能够定位并修复问题。

  4. 替代方案:作为临时解决方案,可以考虑使用网页端或其他原生插件进行视频选择,以绕过 uni.chooseVideo 在特定平台上的问题。

希望这些信息能帮助您解决问题!

回到顶部