uni.chooseVideo(options)
拍摄视频或从手机相册中选视频,返回视频的临时文件路径。
chooseVideo 兼容性
Web | Android | iOS |
4.0 | 4.18 | 4.18 |
参数
名称 | 类型 | 必填 | 默认值 | 兼容性 | 描述 |
options | ChooseVideoOptions | 是 | - | - | - |
名称 | 类型 | 必备 | 默认值 | 兼容性 | 描述 | pageOrientation | string | 否 | - |
Web
|
Android
|
iOS
| x | 4.33 | 4.33 |
| 屏幕方向。默认为page.json中的pageOrientation。 | 合法值 | 兼容性 | 描述 | auto | - | 自动 | portrait | - | 竖屏显示 | landscape | - | 横屏显示 |
| albumMode | string | 否 | "custom" | | 视频选择模式 | 合法值 | 兼容性 | 描述 | custom | - | 自定义媒体选择器 | system | - | 系统媒体选择器 |
| sourceType | Array<string> | 否 | - | - | album 从相册选视频,camera 使用相机拍摄,默认为:['album', 'camera'] | compressed | boolean | 否 | true | | 是否压缩所选的视频源文件,默认值为true,需要压缩 | maxDuration | number | 否 | - | | 拍摄视频最长拍摄时间,单位秒。最长支持 60 秒 | camera | string | 否 | - | | 摄像切换
| 合法值 | 兼容性 | 描述 | front | - | 前置摄像头 | back | - | 后置摄像头 |
| extension | Array<string> | 否 | - | | 根据文件拓展名过滤,每一项都不能是空字符串。默认不过滤。 | success | (callback: ChooseVideoSuccess) => void | 否 | - | - | 接口调用成功,返回视频文件的临时文件路径,详见返回参数说明 | fail | (callback: IMediaError) => void | 否 | - | - | 接口调用失败的回调函数 | complete | (callback: any) => void | 否 | - | - | 接口调用结束的回调函数(调用成功、失败都会执行) |
|
ChooseVideoSuccess 的属性值
名称 | 类型 | 必备 | 默认值 | 兼容性 | 描述 |
tempFilePath | string | 是 | - | - | 选定视频的临时文件路径 |
duration | number | 是 | - | - | 选定视频的时间长度 |
size | number | 是 | - | - | 选定视频的数据量大小 |
height | number | 是 | - | - | 返回选定视频的长 |
width | number | 是 | - | - | 返回选定视频的宽 |
名称 | 类型 | 必备 | 默认值 | 兼容性 | 描述 |
errCode | number | 是 | - | - | 错误码 |
合法值 | 兼容性 | 描述 | 1101001 | - | 用户取消 | 1101002 | - | urls至少包含一张图片地址 | 1101003 | - | 文件不存在 | 1101004 | - | 图片加载失败 | 1101005 | - | 未获取权限 | 1101006 | - | 图片或视频保存失败 | 1101007 | - | 图片裁剪失败 | 1101008 | - | 拍照或录像失败 | 1101009 | - | 图片压缩失败 | 1101010 | - | 其他错误 |
|
errSubject | string | 是 | - | - | 统一错误主题(模块)名称 |
data | any | 否 | - | - | 错误信息中包含的数据 |
cause | Error | 否 | - | - | 源错误信息,可以包含多个错误,详见SourceError |
errMsg | string | 是 | - | - | - |
参见
示例
hello uni-app x
通用类型
GeneralCallbackResult
名称 | 类型 | 必备 | 默认值 | 兼容性 | 描述 |
errMsg | string | 是 | - | - | 错误信息 |
Tips
- 本API会自动申请摄像头和相册权限,如需手动获取app是否拥有摄像头和相册权限,参考 uni.getAppAuthorizeSetting
- app端拍摄和相册选择会在应用沙盒目录的cache目录产生临时文件,位置详见。
- app端如需主动删除临时文件,使用uni.getFileSystemManager。
albumMode
的system
属性打开的是系统的视频选择器;custom
属性打开的是uni-app x提供的视频选择器。 - 当设置
albumMode
为system
时,可以正常上架google play。同时需要在manifest.json中将<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
和<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
权限移除。配置方式参考移除Android权限. - 系统视频选择器的
sizeType
仅支持设置['original']
或['compressed']
。在Android 11及以上的系统中,设置system
调用的是系统的视频选择器,低于android 11的系统中会调用系统的文件选择器。 - 由于受google play 照片和视频权限政策的影响,使用uni.chooseVideo在上架google play时需要提交一份声明以获得试用的资格,谷歌允许延长声明的提交时间到2025年1月22日。遇到此问题可以使用插件uni-chooseSystemMedia。