tt.chooseVideo
基础库
1.0.0
开始支持本方法。
从系统相册中选择视频,或使用相机拍摄视频,返回视频的临时文件路径。
该 API 需要用户授权方可调用,详细信息可参考用户授权。
语法
tt.chooseVideo(options)
参数说明
options
为 object 类型,属性如下:
属性名 | 类型 | 默认值 | 必填 | 说明 | 最低支持版本 |
---|---|---|---|---|---|
sourceType | Array | ['album', 'camera'] | 否 | 指定视频来源为相册(album)或相机(camera) ,默认两者都有 | 1.0.0 |
compressed | boolean | true | 否 | 是否需要压缩视频源文件,默认值为 true,需要压缩 | 1.0.0 |
camera | string | 'back' | 否 | 默认拉起的是前置或者后置摄像头。部分 Android 手机下由于系统 ROM 不支持无法生效 | 1.0.0 |
maxDuration | number | 60 | 否 | 选择视频的最大时长(单位:s),取值范围(0, 180],maxDuration <= 0 时取值 60, maxDuration > 180 时取值 180,在取值范围内为传入值 | 1.0.0 |
success | function | 否 | 接口调用成功的回调函数,具体说明详见回调成功 | 1.0.0 | |
fail | function | 否 | 接口调用失败的回调函数,具体说明详见回调失败 | 1.0.0 | |
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行),回调参数同成功或失败回调 | 1.0.0 |
回调成功
触发时机:选取成功后。
回调参数为 Object 类型,属性如下:
属性 | 类型 | 说明 | 最低支持版本 |
---|---|---|---|
errMsg | string | "chooseVideo:ok" | 1.0.0 |
tempFilePath | string | 选定视频的临时文件路径 | 1.0.0 |
duration | number | 选定视频的时间长度 (单位:s) | 1.0.0 |
size | number | 选定视频的数据量大小(单位:B) | 1.0.0 |
width | number | 选定视频的视频宽度(单位:px) | 1.0.0 |
height | number | 选定视频的高度(单位:px) | 1.0.0 |
回调失败
触发时机:取消选择、参数错误、没有授权/授权失败、视频时长超过 60 秒、文件路径为空、文件路径不存在。
回调参数为 Object 类型,属性如下:
属性 | 类型 | 说明 | 最低支持版本 |
---|---|---|---|
errMsg | string | "chooseVideo:fail " + 详细错误信息 | 1.0.0 |
效果示例

扫码体验
请使用字节宿主APP扫码
代码示例
<!-- index.ttml -->
<button type="primary" bindtap="choosevideo">选择视频</button>
<view tt-if="{{videoSrc}}">
<view>{{description}}</view>
<video src="{{videoSrc}}" controls="true"></video>
</view>
// index.js
Page({
data: {
videoSrc: "",
description: "",
},
choosevideo() {
tt.chooseVideo({
sourceType: ["album", "camera"],
compressed: true,
success: (res) => {
let { duration, width, height, size } = res;
this.setData({
videoSrc: res.tempFilePath,
description: `视频时长:${duration}s; 视频宽度:${width}px; 视频高度:${height}px; 视频大小:${size}B`,
});
},
fail: (err) => {
let errType = err.errMsg.includes("chooseVideo:fail cancel") ? "取消选择" : "选择失败";
tt.showModal({
title: errType,
content: err.errMsg,
showCancel: false,
});
},
complete: (res) => {
console.log("完成选择");
},
});
},
});
Bug & Tip
- Tip:手动取消也会触发失败回调,回调参数为
chooseVideo:fail cancel
,可以通过判断详细错误信息区分取消和其他错误。 - Bug: iOS 无论 compressed 传入 true 或者 false, 都会压缩处理。
- Bug: 安卓无论 compressed 传入 true 或者 false, 都不会压缩。
点击纠错
评价此篇文档