uni-app 鸿蒙 5.0 uni.chooseVideo 返回的视频的大小(size)单位错误

uni-app 鸿蒙 5.0 uni.chooseVideo 返回的视频的大小(size)单位错误

开发环境 版本号 项目创建方式
Mac macOS 15.7 HBuilderX
### 操作步骤:
见 bug 描述

### 预期结果:
见 bug 描述

### 实际结果:
见 bug 描述

### bug描述:
鸿蒙sdk版本:  [@dcloudio](/user/dcloudio)/uni-app-runtime(V4.76.2025082101)  

uni.chooseVideo 中 success 返回的参数 size,在 iOS 和 Android 上,单位为字节(Byte),但是在鸿蒙平台上 size 的单位是千字节(KB)。同为移动平台,造成了不一致。

更多关于uni-app 鸿蒙 5.0 uni.chooseVideo 返回的视频的大小(size)单位错误的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

问题已确认,已为你加分。

更多关于uni-app 鸿蒙 5.0 uni.chooseVideo 返回的视频的大小(size)单位错误的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在鸿蒙平台上,uni.chooseVideo返回的size单位确实存在不一致的问题。根据官方文档,size参数的单位应为字节(Byte),但鸿蒙平台返回的是千字节(KB),这与iOS和Android平台的行为不符。

问题分析:

  • 鸿蒙平台的底层实现可能未按规范处理文件大小单位,直接返回了以KB为单位的数值。
  • 这属于平台适配性问题,需要框架层进行统一修复。

临时解决方案: 在代码中增加平台判断,对鸿蒙平台返回的size值进行单位转换:

uni.chooseVideo({
  success: (res) => {
    let size = res.size;
    // 鸿蒙平台特殊处理
    if (uni.getSystemInfoSync().platform === 'harmony') {
      size = size * 1024; // 将KB转换为Byte
    }
    // 后续处理...
  }
});
回到顶部