小程序开放平台

文档中心
基础
界面
网络
数据缓存
媒体
图片
地图
视频
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+版本