x-chooseMedia-s 媒体选择器
从系统相册选择或用系统相机拍摄。chooseImage 与 chooseVideo 分开,不绘制自定义选择器,不引入第三方库。
微信走 wx.chooseImage / wx.chooseVideo。
兼容性
| Harmony | IOS | Android | WEB | 小程序 |
|---|---|---|---|---|
| 支持 | 支持 | 支持 | 支持 | 支持 |
调用
ts
import { chooseImage, chooseVideo, XChooseImageOptions, XChooseVideoOptions } from "@/uni_modules/x-chooseMedia-s"
chooseImage({
count: 3,
sourceType: ["album", "camera"],
sizeType: ["compressed"],
outputType: "jpg",
quality: 80,
success: (res) => {
console.log(res.tempFilePaths)
}
} as XChooseImageOptions)
chooseVideo({
sourceType: ["camera"],
compressed: true,
maxDuration: 15,
camera: "back",
quality: "medium",
success: (res) => {
console.log(res.tempFilePath, res.duration, res.width, res.height)
}
} as XChooseVideoOptions)方法
| 名称 | 说明 |
|---|---|
| chooseImage | 选图或拍照,输出 jpg / png |
| chooseVideo | 选视频或录像,输出 mp4 |
来源
| sourceType | 行为 |
|---|---|
仅 album | 系统相册 / 照片选择器 |
仅 camera | 系统相机 |
| 同时指定 | 微信走官方双来源;App 用系统 ActionSheet 再进入相机或相册;Web 用 <input type=file>(移动端通常会同时提供拍摄与相册) |
相册使用系统选择器,不申请存储/相册权限(iOS 12–13 相册降级除外)。拍摄会申请相机;录像额外申请麦克风。
图片
| 字段 | 默认 | 说明 |
|---|---|---|
| count | 9 | 最多张数,拍照固定 1 |
| sizeType | ['compressed'] | compressed 压缩;仅 original 时只转格式 |
| outputType | jpg | jpg / png |
| quality | 压缩 80 / 原图 92 | 1–100,仅 jpg 有效 |
无论源是 heic / webp / 其它格式,最终都写成 jpg 或 png。
视频
| 字段 | 默认 | 说明 |
|---|---|---|
| compressed | true | 压缩并转为 mp4 |
| maxDuration | 60 | 拍摄最长秒数,1–60 |
| camera | back | 仅拍摄 |
| quality | medium | low / medium / high,对应系统质量档 |
无论源是 mov / 其它封装,最终尽量输出 mp4。
Android 相册视频用系统 MediaMuxer 封装为 mp4;码率压缩主要在拍摄时由系统相机 EXTRA_VIDEO_QUALITY 完成。iOS 用 AVAssetExportSession。Harmony 用 AVTranscoder。Web 无法在浏览器内稳定转码为 mp4,返回浏览器给出的文件。
错误码
| 码 | 含义 |
|---|---|
| 1001 | 系统错误 |
| 1002 | 参数错误 |
| 1004 | 权限拒绝 |
| 1005 | 正在选择 |
| 1006 | 用户取消 |
| 1008 | 平台不支持 |
| 1009 | 压缩或转码失败 |
版本
版权归 https://xui.tmui.design 你不得修改及二次开发,仅供 TMUI4 会员商用使用。不得转给非 VIP 会员使用,一经查实数倍赔偿,并追究法律责任。
更新日志
1.0.3(2026-08-16)
- iOS
Info.plist增加CFBundleDevelopmentRegion/CFBundleLocalizations,相册和相机系统界面跟随中文。
1.0.2(2026-08-16)
- 修复鸿蒙 ArkTS:静态方法不用 this、对象字面量补类型、packToFile 改传文件 fd
1.0.1(2026-08-16)
- 修复鸿蒙模块名大小写:
module.json5必须与构建生成的uni_modules__x_choosemedia_s一致
1.0.0(2026-08-16)
- 新增 chooseImage / chooseVideo,仅使用系统相册、系统相机与系统压缩/转码
- 图片统一输出 jpg 或 png,视频统一输出 mp4
- 微信走 wx.chooseImage / wx.chooseVideo
