小程序开放平台

文档中心
基础
路由
跳转
转发
界面
网络
支付
数据缓存
媒体
图片
地图
视频
createVideoContext
VideoContext
chooseVideo
chooseMedia
saveVideoToPhotosAlbum
compressVideo
getVideoInfo
富文本
位置
开放接口
设备
XHSML
性能
第三方平台
文件
数据分析
画布

xhs.chooseVideo

开发
>
JS API
>
媒体
>
视频
>
chooseVideo
>
更新时间:2025-04-10 17:50:27

以Promise风格调用: 支持

拍摄视频或从手机相册中选视频。

参数

Object object

属性
类型
默认值
必填
说明
sourceTypearrayalbum,camera指定视频来源为相册(album)或相机(camera) ,默认两者都有
compressedbooleantrue是否需要压缩视频源文件,默认值为 true,需要压缩
camerastringback, front默认拉起的是前置或者后置摄像头
maxDurationnumber60选择视频的最大时长(单位:s)
successfunction接口调用成功的回调函数
failfunction接口调用失败的回调函数
completefunction接口调用结束的回调函数(调用成功、失败都会执行)

object.success 回调函数

属性
类型
说明
tempFilePathstring选定视频的临时文件路径
durationnumber选定视频的时间长度 (单位:s)
sizenumber选定视频的数据量大小(单位:B)
widthnumber选定视频的视频宽度(单位:px)
heightnumber选定视频的高度(单位:px)
errMsgstring

实例代码

function chooseVideo(options = {}) {
  return new Promise((resolve, reject) => {
    xhs.chooseVideo({
      ...options,
      success: (res) => resolve(res),
      fail: (err) => reject(err),
    });
  });
}

// 调用示例
chooseVideo({
  sourceType: ['album', 'camera'], // 指定来源
  compressed: true,               // 是否压缩
  camera: 'back',                 // 默认后置摄像头
  maxDuration: 30,                // 最大时长 30 秒
})
  .then((res) => {
    console.log('视频选择成功:', res);
    // 处理返回结果
    console.log('临时文件路径:', res.tempFilePath);
    console.log('视频时长:', res.duration);
    console.log('视频大小:', res.size);
    console.log('视频宽度:', res.width);
    console.log('视频高度:', res.height);
  })
  .catch((err) => {
    console.error('视频选择失败:', err);
  });

Bug & Tips

  1. IOS版本在8.27以下,tempFilePath 会返回绝对路径,8.27及以上返回相对路径,建议使用8.27+版本