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
}
// 后续处理...
}
});

