uni-app ios使用uni.chooseVideo时指定compressed参数为false时报错

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

uni-app ios使用uni.chooseVideo时指定compressed参数为false时报错

项目信息 详情
产品分类 uniapp/App
PC开发环境 Mac
PC操作系统版本 macOS Sonoma 14.5
HBuilderX类型 正式
HBuilderX版本 4.36
手机系统 iOS
手机系统版本 iOS 17
手机厂商 苹果
手机机型 iPhone 13 Pro Max
页面类型 vue
Vue版本 vue3
打包方式 云端
项目创建方式 HBuilderX

操作步骤:

ios使用uni.chooseVideo时指定compressed参数为false时报错

{ “errMsg”: “chooseVideo:fail [File:-11800]这项操作无法完成,”, “code”: -100 }


### 预期结果:
返回选择的文件路径

### 实际结果:
实际返回了错误

### bug描述:
ios使用uni.chooseVideo时指定compressed参数为false时报错
{
"errMsg": "chooseVideo:fail [File:-11800]这项操作无法完成,",
"code": -100
}

4 回复

这个 api 是个别文件不能压缩,还是都不能压缩,提供个空白工程展示你的具体用法把,提供 vue 和 HBuilderX 依赖版本。你测试是模拟器是否正常,其他同事的手机是否正常,排除个别手机的问题


已找到原因,手机内存空间不足时会产生该错误,建议将错误信息明确下

在处理uni-app在iOS平台上使用uni.chooseVideo方法时指定compressed参数为false导致的报错问题,我们首先需要明确uni.chooseVideo方法的参数和行为。在uni-app的官方文档中,compressed参数用于指定录制视频是否压缩,设置为false意味着不压缩视频。然而,iOS系统对视频录制和文件处理有其自身的限制和默认行为,这可能导致在不压缩视频时遇到兼容性问题或系统限制。

由于你提到设置compressedfalse时报错,这里提供一个基本的代码示例,同时展示如何捕获并处理可能的错误。需要注意的是,由于我无法直接在你的环境中测试,以下代码更多是一个指导性的示例,用于展示如何处理可能的错误情况。

uni.chooseVideo({
    sourceType: ['album', 'camera'], // 可以指定来源为相册或相机
    maxDuration: 60, // 最大录制时长,单位秒
    camera: 'back', // 使用后置摄像头
    compressed: false, // 不压缩视频(注意:iOS上可能导致问题)
    success: function (res) {
        console.log('视频选择成功', res.tempFilePath);
        // 处理成功选择的视频文件路径
    },
    fail: function (err) {
        console.error('视频选择失败', err);
        // 处理错误情况
        // 可以在这里提示用户错误信息,或者采取其他错误处理策略
        // 例如,根据错误类型提示用户iOS不支持不压缩视频
        if (err.code === 'specific_ios_error_code') { // 假设有一个特定的iOS错误码
            uni.showToast({
                title: 'iOS不支持不压缩视频,请尝试其他设置。',
                icon: 'none'
            });
        } else {
            uni.showToast({
                title: '视频选择失败,请重试。',
                icon: 'none'
            });
        }
    }
});

在上述代码中,我们使用了uni.chooseVideo方法,并设置了compressedfalse。重要的是,我们在fail回调中添加了错误处理逻辑,以捕获并响应可能的错误。由于具体的iOS错误码可能不是公开的或者文档中没有明确说明,你需要根据实际情况调整错误处理逻辑。

如果确实需要在iOS上不压缩视频,而uni-app的默认行为或限制导致无法实现,你可能需要考虑以下替代方案:

  • 使用原生iOS开发(Swift或Objective-C)来实现不压缩视频的需求。
  • 联系uni-app的开发团队,询问关于iOS平台上compressed参数的具体支持和限制。
  • 接受视频压缩作为当前平台的一个限制,并调整应用逻辑以适应这一点。
回到顶部