chooseMedia(params: Object)

版本要求:
BaseKit≥2.5.0@ray-js/ray≥0.5.9
支持平台:
iOSAndroid
import { chooseMedia } from '@ray-js/ray';

// Promise 调用
try {
  const res = await chooseMedia({ ...params });
  console.log(res);
} catch (err) {
  console.log(err.errorMsg);
}

描述

拍摄或从手机相册中选择图片或视频 权限:[scope.camera, scope.writePhotosAlbum]

参数

属性类型必填默认值说明BaseKit 最低版本
countnumber否9最多可以选择的文件数。 注意:Android13以上的版本,使用的是系统图片选择器,该字段不生效-
mediaTypestring否"image"选择类型, 默认图片 'image' 只能拍摄图片或从相册选择图片 'video' 只能拍摄视频或从相册选择视频-
sourceTypestring[]否["album", "camera"]图片和视频选择的来源, 默认['album', 'camera'] 'album' 从相册选择 'camera' 使用相机拍摄-
maxDurationnumber否10拍摄视频最长拍摄时间,单位秒。默认10s 时间范围为 3s 至 60s 之间。不限制相册。-
isFetchVideoFileboolean否true该参数只对iOS有效 是否拷贝视频: 默认true,拷贝视频,返回视频拷贝地址,返回视频封面地址 false,不拷贝视频,返回视频相册中的地址,返回视频封面图地址v3.14.2
isClipVideoboolean否false该参数只对iOS有效 相册选择的视频是否需要裁剪 默认为false, 不裁剪视频v3.14.2
maxClipDurationnumber否60视频最长剪辑时间,单位秒。默认60s 需要设置isClipVideo为true才生效 时间范围为 60s 至 600 之间。 选择视频的时长小于15s不裁剪v3.14.2
isGetAlbumFileNameboolean否false该参数只对iOS有效 选择导出的文件名称,和相册中文件的名称一致 默认为false, 使用每次文件名称唯一v3.14.2
isClipVideoAndroidboolean否true该参数只对Android有效 芯图定制 后续 isClipVideo合并 相册选择的视频是否需要裁剪 默认为true, 裁剪视频,与原业务表现一致v3.32.13
complete() => void否-接口调用结束的回调函数(调用成功、失败都会执行)-
success(params: Object) => void否-接口调用成功的回调函数-
fail(params: Object) => void否-接口调用失败的回调函数-
success 回调参数
属性类型说明BaseKit 最低版本
typestring文件类型 'image' 图片 'video' 视频v3.2.6
本地临时文件列表v3.2.6
fail 回调参数
属性类型说明
errorMsgstring错误信息
errorCodestring | number错误码
错误扩展

返回值

无

示例代码

import { chooseMedia } from '@ray-js/ray'

// 拍摄或选择图片/视频(会拉起系统选择器,需手动选择)
chooseMedia({
  count: 1,
  mediaType: "image",
  sourceType: ["album", "camera"],
  maxDuration: 10,
  success: data => console.log("已选:", data.type, data.tempFiles),
  fail: error => console.error(error),
});