Skip to content

x-chooseMedia-s 媒体选择器

从系统相册选择或用系统相机拍摄。chooseImagechooseVideo 分开,不绘制自定义选择器,不引入第三方库。

微信走 wx.chooseImage / wx.chooseVideo

兼容性

HarmonyIOSAndroidWEB小程序
支持支持支持支持支持

调用

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 相册降级除外)。拍摄会申请相机;录像额外申请麦克风。

图片

字段默认说明
count9最多张数,拍照固定 1
sizeType['compressed']compressed 压缩;仅 original 时只转格式
outputTypejpgjpg / png
quality压缩 80 / 原图 921–100,仅 jpg 有效

无论源是 heic / webp / 其它格式,最终都写成 jpg 或 png。

视频

字段默认说明
compressedtrue压缩并转为 mp4
maxDuration60拍摄最长秒数,1–60
cameraback仅拍摄
qualitymediumlow / 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
最近更新