有奖捉虫:办公协同&微信生态&物联网文档专题 HOT

导出:wj-export

导出组件提供了视频导出的功能,内部复用了wj-player,针对小程序导出进行了专门处理。

使用方式

1. 配置 JSON 文件:
{
"usingComponents": {
"export": "plugin://myPlugin/wj-export"
}
}
2. 在 wxml 中引入组件:
<export
tracks="{{tracks}}"
bindprogress="handleProgress"
bindexportsuccess="handleExportSuccess"
bindexportfail="handleExportFail"
bindready="handleReady"
bindthumbready="handleThumbReady"
watermark="{{watermark}}"
quality="{{quality}}"
showloading="{{showloading}}">
<button bindTap="startExport">导出视频</button>
</export>

属性说明

属性名
类型
默认值
说明
必填
tracks
Array<Track>
[]
导出视频的轨道信息
quality
Enum('high', 'medium', 'low')
medium
导出视频质量选项。提供 high,medium,low 三个选项。以标准16:9视频为例:
high 导出分辨率为1080*1920
medium 导出分辨率为720*1280
low 导出分辨率为 540*960
showloading
Boolean
false
是否显示默认的导出进度 toast,默认值:false
watermark
String
-
水印地址,支持线上链接和本地临时地址
watermarkX
Number
15
水印基于左上角X偏移量
watermarkY
Number
15
水印基于左上角Y偏移量
bitrate
Number
2000
导出视频的比特率
gop
Number
12
导出视频的 gop
bindready
Function
-
导出组件加载完成时触发
bindexportstart
Function
-
导出流程开始
bindprogress
Function
-
导出进度更新
e.detail = {progress: Number}
bindexportsuccess
Function
-
导出成功
{
code: 0, //成功
tempFilePath: 'wxfile://xxx.mp4',
coverInfo: {
path: xxx,
width: 544,
height: 960
}, // 封面信息
video: {
width: '544', //视频分辨率
height: '960',
fps: 30, //帧率
}
duration: 3000 //单位 ms
}
bindexportfail
Function
-
导出失败
{
message: String,
error: errorStack
}
bindthumbready
Function
-
默认封面图生成
{
path: String,
height:1080,
width: 720
}
说明
导出组件提供了slot 插槽以定制导出组件的实际 UI,并监听内部冒泡的 tap 事件以触发导出流程;如果需要手动触发导出流程,可以使用wx.selectComponent获取组件实例并调用实例的start方法。
<wj-export id='export' tracks="{{exportTracks}}"
bindexportsuccess="onExportSuccess"
bindready="onExportReady"></wj-export>
export(){
let exporter = this.selectComponent("#export")
exporter.start()
}