视频上下文

相关文档: video 组件

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

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

方法

VideoContext.play()

播放视频

VideoContext.pause()

暂停视频

VideoContext.stop()

停止视频

VideoContext.seek(number position)

跳转到指定位置

VideoContext.sendDanmu(Object data)

发送弹幕

VideoContext.playbackRate(number rate)

设置倍速播放

VideoContext.requestFullScreen(Object object)

进入全屏。如果有自定义内容需要在全屏时展示,需要把内容节点放到 video 节点里面。

VideoContext.exitFullScreen()

退出全屏

VideoContext.showStatusBar()

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

VideoContext.hideStatusBar()

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

VideoContext.exitPictureInPicture()

退出小窗,这个方法可以在任意页面调用

VideoContext.requestBackgroundPlayback()

进入后台小窗播放模式。

VideoContext.exitBackgroundPlayback()

退出后台小窗播放模式。

VideoContext.startCasting()

开始投屏,拉起半屏搜索设备。只支持在 tap 事件回调里调用。

VideoContext.switchCasting()

切换投屏设备。只支持在 tap 事件回调里调用。

VideoContext.reconnectCasting()

重连投屏设备。只支持在 tap 事件回调里调用。

VideoContext.exitCasting()

退出投屏。只支持在 tap 事件回调里调用。

示例代码

在开发者工具中预览效果

<view class="section tc">
  <video id="myVideo" src="http://wxsnsdy.tc.qq.com/105/20210/snsdyvideodownload?filekey=30280201010421301f0201690402534804102ca905ce620b1241b726bc41dcff44e00204012882540400&bizid=1023&hy=SH&fileparam=302c020101042530230204136ffd93020457e3c4ff02024ef202031e8d7f02030f42400204045a320a0201000400" enable-danmu danmu-btn controls></video>
  <view class="btn-area">
    <input bindblur="bindInputBlur"/>
    <button bindtap="bindSendDanmu">发送弹幕</button>
  </view>
</view>
function getRandomColor () {
  let 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 = wx.createVideoContext('myVideo')
  },
  inputValue: '',
  bindInputBlur (e) {
    this.inputValue = e.detail.value
  },
  bindSendDanmu () {
    this.videoContext.sendDanmu({
      text: this.inputValue,
      color: getRandomColor()
    })
  }
})

wx.checkDeviceSupportHevc(Object object)

以 Promise 风格 调用:不支持

微信小程序插件:支持,需要微信小程序基础库版本不低于 3.8.11

功能描述

查询设备是否支持 H.265 编码

参数

Object object

属性 类型 默认值 必填 说明
success function 否 接口调用成功的回调函数
fail function 否 接口调用失败的回调函数
complete function 否 接口调用结束的回调函数(调用成功、失败都会执行)

object.success 回调函数

参数
Object res
属性 类型 说明
supportHevc Boolean 设备是否支持 H.265 编码

示例代码

wx.checkDeviceSupportHevc({
  success (res) {
    const supportHevc = res.supportHevc
  }
})

wx.chooseMedia(Object object)

基础库 2.10.0 开始支持,低版本需做兼容处理。

以 Promise 风格 调用:支持

微信小程序插件:支持,需要微信小程序基础库版本不低于 2.11.1

微信 Windows 版:支持

微信 Mac 版:支持

微信 鸿蒙 OS 版:支持

功能描述

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

参数

Object object

属性 类型 默认值 必填 说明
count number 9 否 最多可以选择的文件个数,基础库2.25.0前,最多可支持9个文件,2.25.0及以后最多可支持20个文件
mediaType Array.<string> [‘image’, ‘video’] 否 文件类型
合法值 说明
image 只能拍摄图片或从相册选择图片
video 只能拍摄视频或从相册选择视频
mix 可同时选择图片和视频
sourceType Array.<string> [‘album’, ‘camera’] 否 图片和视频选择的来源
合法值 说明
album 从相册选择
camera 使用相机拍摄
maxDuration number 10 否 拍摄视频最长拍摄时间,单位秒。时间范围为 3s 至 60s 之间。不限制相册。
sizeType Array.<string> [‘original’, ‘compressed’] 否 是否压缩所选文件,基础库2.25.0前仅对 mediaType 为 image 时有效,2.25.0及以后对全量 mediaType 有效
camera string ‘back’ 否 仅在 sourceType 为 camera 时生效,使用前置或后置摄像头
合法值 说明
back 使用后置摄像头
front 使用前置摄像头
success function 否 接口调用成功的回调函数
fail function 否 接口调用失败的回调函数
complete function 否 接口调用结束的回调函数(调用成功、失败都会执行)

object.success 回调函数

参数
Object res
属性 类型 说明
tempFiles Array.<Object> 本地临时文件列表
结构属性 类型 说明
tempFilePath string 本地临时文件路径 (本地路径)
size number 本地临时文件大小,单位 B
duration number 视频的时间长度
height number 视频的高度
width number 视频的宽度
thumbTempFilePath string 视频缩略图临时文件路径
fileType string 文件类型
合法值 说明
image 图片
video 视频
type string 文件类型,有效值有 image 、video、mix

示例代码

wx.chooseMedia({
  count: 9,
  mediaType: ['image','video'],
  sourceType: ['album', 'camera'],
  maxDuration: 30,
  camera: 'back',
  success(res) {
    console.log(res.tempFiles[0].tempFilePath)
    console.log(res.tempFiles[0].size)
  }
})

wx.chooseVideo(Object object)

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

以 Promise 风格 调用:支持

微信小程序插件:支持,需要微信小程序基础库版本不低于 1.9.6

微信 Windows 版:支持

微信 Mac 版:支持

微信 鸿蒙 OS 版:支持

功能描述

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

参数

Object object

属性 类型 默认值 必填 说明 最低版本
sourceType Array.<string> [‘album’, ‘camera’] 否 视频选择的来源
合法值 说明
album 从相册选择视频
camera 使用相机拍摄视频
compressed boolean true 否 是否压缩所选择的视频文件 1.6.0
maxDuration number 60 否 拍摄视频最长拍摄时间,单位秒
camera string ‘back’ 否 默认拉起的是前置或者后置摄像头。部分 Android 手机下由于系统 ROM 不支持无法生效
合法值 说明
back 默认拉起后置摄像头
front 默认拉起前置摄像头
success function 否 接口调用成功的回调函数
fail function 否 接口调用失败的回调函数
complete function 否 接口调用结束的回调函数(调用成功、失败都会执行)

object.success 回调函数

参数
Object res
属性 类型 说明
tempFilePath string 选定视频的临时文件路径 (本地路径)
duration number 选定视频的时间长度
size number 选定视频的数据量大小
height number 返回选定视频的高度
width number 返回选定视频的宽度

示例代码

wx.chooseVideo({
  sourceType: ['album','camera'],
  maxDuration: 60,
  camera: 'back',
  success(res) {
    console.log(res.tempFilePath)
  }
})

wx.compressVideo(Object object)

基础库 2.11.0 开始支持,低版本需做兼容处理。

以 Promise 风格 调用:支持

微信小程序插件:支持,需要微信小程序基础库版本不低于 2.11.1

微信 鸿蒙 OS 版:支持

功能描述

压缩视频接口。开发者可指定压缩质量 quality 进行压缩。当需要更精细的控制时,可指定 bitrate、fps、和 resolution,当 quality 传入时,这三个参数将被忽略。原视频的相关信息可通过 getVideoInfo 获取。

参数

Object object

属性 类型 默认值 必填 说明
src string 是 视频文件路径,可以是临时文件路径也可以是永久文件路径
quality string 否 压缩质量
合法值 说明
low 低
medium 中
high 高
bitrate number 是 码率,单位 kbps
fps number 是 帧率
resolution number 是 相对于原视频的分辨率比例,取值范围(0, 1]
success function 否 接口调用成功的回调函数
fail function 否 接口调用失败的回调函数
complete function 否 接口调用结束的回调函数(调用成功、失败都会执行)

object.success 回调函数

参数
Object res
属性 类型 说明
tempFilePath string 压缩后的临时文件地址
size number 压缩后的大小,单位 kB

微信小程序 wx.createVideoContext(string id, Object this)

微信小程序插件:支持,需要微信小程序基础库版本不低于 1.9.6

微信 Windows 版:支持

微信 Mac 版:支持

微信 鸿蒙 OS 版:支持

相关文档: video 组件

功能描述

创建 video 上下文 VideoContext 对象。建议使用 wx.createSelectorQuery 获取 context 对象。

参数

string id

video 组件的 id

Object this

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

返回值

VideoContext

wx.getVideoInfo(Object object)

基础库 2.11.0 开始支持,低版本需做兼容处理。

以 Promise 风格 调用:支持

微信小程序插件:支持

微信 鸿蒙 OS 版:支持

功能描述

获取视频详细信息。

参数

Object object

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

object.success 回调函数

参数
Object res
属性 类型 说明
orientation string 画面方向
合法值 说明
up 默认
down 180度旋转
left 逆时针旋转90度
right 顺时针旋转90度
up-mirrored 同up,但水平翻转
down-mirrored 同down,但水平翻转
left-mirrored 同left,但垂直翻转
right-mirrored 同right,但垂直翻转
type string 视频格式
duration number 视频长度
size number 视频大小,单位 kB
height number 视频的长,单位 px
width number 视频的宽,单位 px
fps number 视频帧率
bitrate number 视频码率,单位 kbps

打开视频编辑器

基础库 2.12.0 开始支持,低版本需做兼容处理。

以 Promise 风格 调用:不支持

微信小程序插件:支持,需要微信小程序基础库版本不低于 2.15.0

功能描述

打开视频编辑器

参数

Object object

属性 类型 默认值 必填 说明 最低版本
filePath string 是 视频源的路径,只支持本地路径
minDuration string 是 视频裁剪的最小长度 2.16.1
maxDuration string 是 视频裁剪的最大长度 2.16.1
success function 否 接口调用成功的回调函数
fail function 否 接口调用失败的回调函数
complete function 否 接口调用结束的回调函数(调用成功、失败都会执行)

object.success 回调函数

参数
Object res
属性 类型 说明
duration number 剪辑后生成的视频文件的时长,单位毫秒(ms)
size number 剪辑后生成的视频文件大小,单位字节数(byte)
tempFilePath string 编辑后生成的视频文件的临时路径
tempThumbPath string 编辑后生成的缩略图文件的临时路径