QQ mac版本:支持
QQ windows版本:支持
调用前需要 用户授权 scope.writePhotosAlbum
保存视频到系统相册
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
filePath | string | 是 | 视频文件路径,可以是临时文件路径也可以是永久文件路径 | |
success | function | 否 | 接口调用成功的回调函数 | |
fail | function | 否 | 接口调用失败的回调函数 | |
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
qq.saveVideoToPhotosAlbum({
filePath: 'qqfile://xxx',
success(res) {
console.log(res.errMsg)
},
})
QQ mac版本:支持
QQ windows版本:支持
创建 video
上下文 VideoContext
对象。
<video>
组件的 id
在自定义组件下,当前组件实例的 this,以操作组件内 <video>
组件
注意
从基础库 1.55.0 开始,本接口停止维护,请使用 qq.chooseMedia 代替。
QQ mac版本:支持
QQ windows版本:支持
拍摄视频或从手机相册中选视频。
属性 | 类型 | 默认值 | 必填 | 说明 | 最低版本 |
---|---|---|---|---|---|
sourceType | Array.<string> | ['album', 'camera'] | 否 | 视频选择的来源 | |
compressed | boolean | true | 否 | 是否压缩所选择的视频文件 | |
maxDuration | number | 60 | 否 | 拍摄视频最长拍摄时间,单位秒 | |
camera | string | 'back' | 否 | 默认拉起的是前置或者后置摄像头。部分 Android 手机下由于系统 ROM 不支持无法生效 | |
success | function | 否 | 接口调用成功的回调函数 | ||
fail | function | 否 | 接口调用失败的回调函数 | ||
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
object.sourceType 的合法值
值 | 说明 |
---|---|
album | 从相册选择视频 |
camera | 使用相机拍摄视频 |
object.camera 的合法值
值 | 说明 |
---|---|
back | 默认拉起后置摄像头 |
front | 默认拉起前置摄像头 |
参数
Object res
属性 | 类型 | 说明 |
---|---|---|
tempFilePath | string | 选定视频的临时文件路径 |
duration | number | 选定视频的时间长度 |
size | number | 选定视频的数据量大小 |
height | number | 返回选定视频的高度 |
width | number | 返回选定视频的宽度 |
thumbTempFilePath | string | 视频缩略图临时文件路径 |
qq.chooseVideo({
sourceType: ['album', 'camera'],
maxDuration: 60,
camera: 'back',
success(res) {
console.log(res.tempFilePath)
},
})
注意
自手 Q 8.9.5 版本开始,该接口只支持从相册选择图片或视频,如需拍摄请使用 qq.makeMedia。
QQ mac版本:支持
QQ windows版本:支持
从手机相册中选择图片或视频。
属性 | 类型 | 默认值 | 必填 | 说明 | 最低版本 |
---|---|---|---|---|---|
count | number | 15 | 否 | 最多可以选择的文件个数(上限 15) | |
mediaType | Array<string> | ['image', 'video'] | 否 | 文件类型 | |
sizeType | Array<string> | ['original', 'compressed'] | 否 | 仅对 mediaType 为 image 时有效,是否压缩所选文件 | |
success | function | 否 | 接口调用成功的回调函数 | ||
fail | function | 否 | 接口调用失败的回调函数 | ||
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
object.mediaType 的合法值
值 | 说明 |
---|---|
image | 只能从相册选择图片 |
video | 只能从相册选择视频 |
object.sizeType 的合法值
值 | 说明 |
---|---|
original | 原图 |
compressed | 压缩图 |
参数
Object res
属性 | 类型 | 说明 |
---|---|---|
tempFiles | Array<Object> | 本地临时文件列表 |
type | string | 文件类型,有效值有 image 、video |
res.tempFiles 的结构
属性 | 类型 | 说明 |
---|---|---|
tempFilePath | string | 本地临时文件路径 (本地路径) |
duration | number | 选定视频的时间长度 |
size | number | 本地临时文件大小,单位 B |
height | number | 返回选定视频的高度 |
width | number | 返回选定视频的宽度 |
thumbTempFilePath | string | 视频缩略图临时文件路径 |
qq.chooseMedia({
count: 9,
mediaType: ['image', 'video'],
camera: 'back',
success(res) {
console.log(res.tempFiles.tempFilePath)
console.log(res.tempFiles.size)
},
})
提示
要求基础库最低版本为 1.55.0
。
QQ mac版本:暂不支持
QQ windows版本:暂不支持
拍摄视频或图片。
属性 | 类型 | 默认值 | 必填 | 说明 | 最低版本 |
---|---|---|---|---|---|
mediaType | Array<string> | ['image', 'video'] | 否 | 文件类型 | |
maxDuration | number | 10 | 否 | 拍摄视频最长拍摄时间,单位秒。时间范围为 3s 至 30s 之间 | |
sizeType | Array<string> | ['original', 'compressed'] | 否 | 仅对 mediaType 为 image 时有效,是否压缩所选文件 | |
camera | string | 'back' | 否 | 使用前置或后置摄像头 | |
success | function | 否 | 接口调用成功的回调函数 | ||
fail | function | 否 | 接口调用失败的回调函数 | ||
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
object.mediaType 的合法值
值 | 说明 |
---|---|
image | 只能拍摄图片 |
video | 只能拍摄视频 |
object.sizeType 的合法值
值 | 说明 |
---|---|
original | 原图 |
compressed | 压缩图 |
object.camera 的合法值
值 | 说明 |
---|---|
back | 默认拉起后置摄像头 |
front | 默认拉起前置摄像头 |
参数
Object res
属性 | 类型 | 说明 |
---|---|---|
tempFile | Object | 本地临时文件信息 |
type | string | 文件类型,有效值有 image 、video |
res.tempFile 的结构
属性 | 类型 | 说明 |
---|---|---|
tempFilePath | string | 本地临时文件路径 (本地路径) |
duration | number | 选定视频的时间长度 |
size | number | 本地临时文件大小,单位 B |
height | number | 返回选定视频的高度 |
width | number | 返回选定视频的宽度 |
thumbTempFilePath | string | 视频缩略图临时文件路径 |
qq.makeMedia({
mediaType: ['video'],
maxDuration: 30,
camera: 'back',
success(res) {
console.log(res.tempFile.tempFilePath)
},
})
VideoContext 实例,可通过 qq.createVideoContext 获取。
videoContext
通过 id
跟一个 <video>
组件绑定,操作对应的 <video>
组件。
QQ mac版本:支持
QQ windows版本:支持
播放视频
暂停视频
停止视频
跳转到指定位置
发送弹幕
进入全屏
退出全屏
显示状态栏,仅在 iOS 全屏下有效
隐藏状态栏,仅在 iOS 全屏下有效
<view class="section tc">
<video
id="myVideo"
src="https://qzonestyle.gtimg.cn/qzone/qzact/act/external/qq-video/qq-video.mp4"
enable-danmu
danmu-btn
controls
></video>
<view class="btn-area">
<input bindblur="bindInputBlur" />
<button bindtap="bindSendDanmu">发送弹幕</button>
</view>
</view>
function getRandomColor() {
const rgb = []
for (let i = 0; i < 3; ++i) {
let color = Math.floor(Math.random() * 256).toString(16)
color = color.length == 1 ? '0' + color : color
rgb.push(color)
}
return '#' + rgb.join('')
}
Page({
onReady(res) {
this.videoContext = qq.createVideoContext('myVideo')
},
inputValue: '',
bindInputBlur(e) {
this.inputValue = e.detail.value
},
bindSendDanmu() {
this.videoContext.sendDanmu({
text: this.inputValue,
color: getRandomColor(),
})
},
})
退出全屏
隐藏状态栏,仅在 iOS 全屏下有效
暂停视频
播放视频
进入全屏
属性 | 类型 | 默认值 | 必填 | 说明 | 最低版本 |
---|---|---|---|---|---|
direction | number | 否 | 设置全屏时视频的方向,不指定则根据宽高比自动判断。 |
object.direction 的合法值
值 | 说明 |
---|---|
0 | 正常竖向 |
90 | 屏幕逆时针 90 度 |
-90 | 屏幕顺时针 90 度 |
跳转到指定位置
跳转到的位置,单位 s
发送弹幕
弹幕内容
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
text | string | 是 | 弹幕文字 | |
color | string | 否 | 弹幕颜色 |
显示状态栏,仅在 iOS 全屏下有效
停止视频