# qq.saveVideoToPhotosAlbum

# qq.saveVideoToPhotosAlbum(Object object)

调用前需要 用户授权 scope.writePhotosAlbum

保存视频到系统相册

# 参数

# Object object
属性 类型 默认值 必填 说明
filePath string 视频文件路径,可以是临时文件路径也可以是永久文件路径
success function 接口调用成功的回调函数
fail function 接口调用失败的回调函数
complete function 接口调用结束的回调函数(调用成功、失败都会执行)

# 示例代码

qq.saveVideoToPhotosAlbum({
  filePath: 'qqfile://xxx',
  success(res) {
    console.log(res.errMsg)
  },
})
1
2
3
4
5
6

# qq.createVideoContext

# VideoContext qq.createVideoContext(string id, Object this)

创建 video 上下文 VideoContext 对象。

# 参数

# string id

<video> 组件的 id

# Object this

在自定义组件下,当前组件实例的 this,以操作组件内 <video> 组件

# 返回值

# VideoContext

# qq.chooseVideo

注意

从基础库 1.55.0 开始,本接口停止维护,请使用 qq.chooseMedia 代替。

# qq.chooseVideo(Object object)

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

# 参数

# Object object
属性 类型 默认值 必填 说明 最低版本
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.success 回调函数

参数

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)
  },
})
1
2
3
4
5
6
7
8

# qq.chooseMedia

注意

自手 Q 8.9.5 版本开始,该接口只支持从相册选择图片或视频,如需拍摄请使用 qq.makeMedia

# qq.chooseMedia(Object object)

从手机相册中选择图片或视频。

# 参数

# Object object
属性 类型 默认值 必填 说明 最低版本
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.success 回调函数

参数

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
2
3
4
5
6
7
8
9

# qq.makeMedia

提示

要求基础库最低版本为 1.55.0

# qq.makeMedia(Object object)

拍摄视频或图片。

# 参数

# Object object
属性 类型 默认值 必填 说明 最低版本
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.success 回调函数

参数

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)
  },
})
1
2
3
4
5
6
7
8

# VideoContext

VideoContext 实例,可通过 qq.createVideoContext 获取。

videoContext 通过 id 跟一个 <video> 组件绑定,操作对应的 <video> 组件。

# 方法

# VideoContext.play()

播放视频

# VideoContext.pause()

暂停视频

# VideoContext.stop()

停止视频

# VideoContext.seek(number position)

跳转到指定位置

# VideoContext.sendDanmu(Object data)

发送弹幕

# VideoContext.requestFullScreen(Object object)

进入全屏

# VideoContext.exitFullScreen()

退出全屏

# VideoContext.showStatusBar()

显示状态栏,仅在 iOS 全屏下有效

# VideoContext.hideStatusBar()

隐藏状态栏,仅在 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>
1
2
3
4
5
6
7
8
9
10
11
12
13
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(),
    })
  },
})
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

# .exitFullScreen

# VideoContext.exitFullScreen()

退出全屏

# .hideStatusBar

# VideoContext.hideStatusBar()

隐藏状态栏,仅在 iOS 全屏下有效

# .pause

# VideoContext.pause()

暂停视频

# .play

# VideoContext.play()

播放视频

# .requestFullScreen

# VideoContext.requestFullScreen(Object object)

进入全屏

# 参数

# Object object
属性 类型 默认值 必填 说明 最低版本
direction number 设置全屏时视频的方向,不指定则根据宽高比自动判断。

object.direction 的合法值

说明
0 正常竖向
90 屏幕逆时针 90 度
-90 屏幕顺时针 90 度

# .seek

# VideoContext.seek(number position)

跳转到指定位置

# 参数

# number position

跳转到的位置,单位 s

# .sendDanmu

# VideoContext.sendDanmu(Object data)

发送弹幕

# 参数

# Object data

弹幕内容

属性 类型 默认值 必填 说明
text string 弹幕文字
color string 弹幕颜色

# .showStatusBar

# VideoContext.showStatusBar()

显示状态栏,仅在 iOS 全屏下有效

# .stop

# VideoContext.stop()

停止视频