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

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

qq.chooseMedia(Object object)

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

参数

Object object
属性 类型 默认值 必填 说明 最低版本
count number 15 最多可以选择的文件个数(上限15)
mediaType Array.<string> ['image', 'video'] 文件类型
sourceType Array.<string> ['album', 'camera'] 图片和视频选择的来源
maxDuration number 10 拍摄视频最长拍摄时间,单位秒。时间范围为 3s 至 30s 之间
sizeType Array.<string> ['original', 'compressed'] 仅对 mediaType 为 image 时有效,是否压缩所选文件
camera string 'back' 仅在 sourceType 为 camera 时生效,使用前置或后置摄像头
success function 接口调用成功的回调函数
fail function 接口调用失败的回调函数
complete function 接口调用结束的回调函数(调用成功、失败都会执行)

object.mediaType 的合法值

说明
image 只能拍摄图片或从相册选择图片
video 只能拍摄视频或从相册选择视频

object.sourceType 的合法值

说明
album 从相册选择
camera 使用相机拍摄

object.camera 的合法值

说明
back 默认拉起后置摄像头
front 默认拉起前置摄像头
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'],
  sourceType: ['album', 'camera'],
  maxDuration: 30,
  camera: 'back',
  success(res) {
    console.log(res.tempFiles.tempFilePath)
    console.log(res.tempFiles.size)
  }
})
1
2
3
4
5
6
7
8
9
10
11

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()

停止视频