基础库 2.32.0 开始支持,低版本需做兼容处理。
微信小程序插件:支持
相关文档: video 组件
功能描述
退出投屏。仅支持在 tap 事件回调内调用。
相关文档: video 组件
VideoContext 实例,可通过 wx.createVideoContext 获取。
VideoContext 通过 id 跟一个 video 组件绑定,操作对应的 video 组件。
播放视频
暂停视频
停止视频
跳转到指定位置
发送弹幕
设置倍速播放
进入全屏。如果有自定义内容需要在全屏时展示,需要把内容节点放到 video 节点里面。
退出全屏
显示状态栏,只在 iOS 全屏下有效
隐藏状态栏,只在 iOS 全屏下有效
退出小窗,这个方法可以在任意页面调用
进入后台小窗播放模式。
退出后台小窗播放模式。
开始投屏,拉起半屏搜索设备。只支持在 tap 事件回调里调用。
切换投屏设备。只支持在 tap 事件回调里调用。
重连投屏设备。只支持在 tap 事件回调里调用。
退出投屏。只支持在 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()
})
}
})
以 Promise 风格 调用:不支持
微信小程序插件:支持,需要微信小程序基础库版本不低于 3.8.11
查询设备是否支持 H.265 编码
| 属性 | 类型 | 默认值 | 必填 | 说明 |
|---|---|---|---|---|
| success | function | 否 | 接口调用成功的回调函数 | |
| fail | function | 否 | 接口调用失败的回调函数 | |
| complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
| 属性 | 类型 | 说明 |
|---|---|---|
| supportHevc | Boolean | 设备是否支持 H.265 编码 |
wx.checkDeviceSupportHevc({
success (res) {
const supportHevc = res.supportHevc
}
})
基础库 2.10.0 开始支持,低版本需做兼容处理。
以 Promise 风格 调用:支持
微信小程序插件:支持,需要微信小程序基础库版本不低于 2.11.1
微信 Windows 版:支持
微信 Mac 版:支持
微信 鸿蒙 OS 版:支持
拍摄或从手机相册中选择图片或视频。
| 属性 | 类型 | 默认值 | 必填 | 说明 | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| count | number | 9 | 否 | 最多可以选择的文件个数,基础库2.25.0前,最多可支持9个文件,2.25.0及以后最多可支持20个文件 | |||||||||
| mediaType | Array.<string> | [‘image’, ‘video’] | 否 | 文件类型 | |||||||||
| |||||||||||||
| sourceType | Array.<string> | [‘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 时生效,使用前置或后置摄像头 | |||||||||
| |||||||||||||
| success | function | 否 | 接口调用成功的回调函数 | ||||||||||
| fail | function | 否 | 接口调用失败的回调函数 | ||||||||||
| complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) | ||||||||||
| 属性 | 类型 | 说明 | |||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| tempFiles | Array.<Object> | 本地临时文件列表 | |||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||
| 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)
}
})
从基础库 2.21.0 开始,本接口停止维护,请使用 wx.chooseMedia 代替
以 Promise 风格 调用:支持
微信小程序插件:支持,需要微信小程序基础库版本不低于 1.9.6
微信 Windows 版:支持
微信 Mac 版:支持
微信 鸿蒙 OS 版:支持
拍摄视频或从手机相册中选视频。
| 属性 | 类型 | 默认值 | 必填 | 说明 | 最低版本 | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| sourceType | Array.<string> | [‘album’, ‘camera’] | 否 | 视频选择的来源 | ||||||||
| ||||||||||||
| compressed | boolean | true | 否 | 是否压缩所选择的视频文件 | 1.6.0 | |||||||
| maxDuration | number | 60 | 否 | 拍摄视频最长拍摄时间,单位秒 | ||||||||
| camera | string | ‘back’ | 否 | 默认拉起的是前置或者后置摄像头。部分 Android 手机下由于系统 ROM 不支持无法生效 | ||||||||
| ||||||||||||
| success | function | 否 | 接口调用成功的回调函数 | |||||||||
| fail | function | 否 | 接口调用失败的回调函数 | |||||||||
| complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) | |||||||||
| 属性 | 类型 | 说明 |
|---|---|---|
| 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)
}
})
基础库 2.11.0 开始支持,低版本需做兼容处理。
以 Promise 风格 调用:支持
微信小程序插件:支持,需要微信小程序基础库版本不低于 2.11.1
微信 鸿蒙 OS 版:支持
压缩视频接口。开发者可指定压缩质量 quality 进行压缩。当需要更精细的控制时,可指定 bitrate、fps、和 resolution,当 quality 传入时,这三个参数将被忽略。原视频的相关信息可通过 getVideoInfo 获取。
| 属性 | 类型 | 默认值 | 必填 | 说明 | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| src | string | 是 | 视频文件路径,可以是临时文件路径也可以是永久文件路径 | ||||||||||
| quality | string | 否 | 压缩质量 | ||||||||||
| |||||||||||||
| bitrate | number | 是 | 码率,单位 kbps | ||||||||||
| fps | number | 是 | 帧率 | ||||||||||
| resolution | number | 是 | 相对于原视频的分辨率比例,取值范围(0, 1] | ||||||||||
| success | function | 否 | 接口调用成功的回调函数 | ||||||||||
| fail | function | 否 | 接口调用失败的回调函数 | ||||||||||
| complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) | ||||||||||
| 属性 | 类型 | 说明 |
|---|---|---|
| tempFilePath | string | 压缩后的临时文件地址 |
| size | number | 压缩后的大小,单位 kB |
微信小程序插件:支持,需要微信小程序基础库版本不低于 1.9.6
微信 Windows 版:支持
微信 Mac 版:支持
微信 鸿蒙 OS 版:支持
相关文档: video 组件
创建 video 上下文 VideoContext 对象。建议使用 wx.createSelectorQuery 获取 context 对象。
video 组件的 id
在自定义组件下,当前组件实例的this,以操作组件内 video 组件
基础库 2.11.0 开始支持,低版本需做兼容处理。
以 Promise 风格 调用:支持
微信小程序插件:支持
微信 鸿蒙 OS 版:支持
获取视频详细信息。
| 属性 | 类型 | 默认值 | 必填 | 说明 |
|---|---|---|---|---|
| src | string | 是 | 视频文件路径,可以是临时文件路径也可以是永久文件路径 | |
| success | function | 否 | 接口调用成功的回调函数 | |
| fail | function | 否 | 接口调用失败的回调函数 | |
| complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
| 属性 | 类型 | 说明 | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| orientation | string | 画面方向 | |||||||||||||||||||
| |||||||||||||||||||||
| 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
打开视频编辑器
| 属性 | 类型 | 默认值 | 必填 | 说明 | 最低版本 |
|---|---|---|---|---|---|
| filePath | string | 是 | 视频源的路径,只支持本地路径 | ||
| minDuration | string | 是 | 视频裁剪的最小长度 | 2.16.1 | |
| maxDuration | string | 是 | 视频裁剪的最大长度 | 2.16.1 | |
| success | function | 否 | 接口调用成功的回调函数 | ||
| fail | function | 否 | 接口调用失败的回调函数 | ||
| complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
| 属性 | 类型 | 说明 |
|---|---|---|
| duration | number | 剪辑后生成的视频文件的时长,单位毫秒(ms) |
| size | number | 剪辑后生成的视频文件大小,单位字节数(byte) |
| tempFilePath | string | 编辑后生成的视频文件的临时路径 |
| tempThumbPath | string | 编辑后生成的缩略图文件的临时路径 |