tt.prerenderVideo
收藏
我的收藏

基础库 3.16.0 开始支持本方法,低版本需做兼容处理,这是一个异步方法。

预渲染视频。用于在视频播放前提前预渲染好视频,从而缩短视频的首帧耗时。小程序全局只会保存一个预渲染的视频,可以先预渲染好接下来需要播放的视频,然后复用预渲染视频进行播放,接着再重新预渲染下一个即将播放的视频,以此类推。需要注意只有创建 video 组件时可以复用预渲染的视频,更新视频资源属性,是无法复用预渲染的视频的。​

前提条件
业务背景
使用限制
注意事项
支持沙盒
相关教程

语法

tt.prerenderVideo(options)

参数说明

options 为 object 类型,属性如下:

属性名类型默认值必填说明最低支持版本
sizenumber409600
预渲染资源大小,单位 byte,取值范围(0,10M]​。默认400*1024​
3.16.0
srcstring
视频资源地址​
3.16.0
successfunction
接口调用成功的回调函数
3.16.0
failfunction
接口调用失败的回调函数
3.16.0
completefunction
接口调用结束的回调函数(调用成功、失败都会执行)
3.16.0

回调成功

object 类型,属性如下:

属性名类型说明最低支持版本
errMsgstring
"prerenderVideo:ok"
3.16.0

回调失败

object 类型,属性如下:

属性名类型说明最低支持版本
errMsgstring
"prerenderVideo:fail" + 详细错误信息
3.16.0

错误码

errorCodeerrMsgerrorType说明最低支持版本
128205prerenderVideo:fail invalid mp idD
当前小程序不允许预渲染

检查是否有预渲染权限

3.16.0
128203prerenderVideo:fail unsupported render typeI
不支持的同层类型

ttwebview未就绪,无需关注关注

3.16.0
128202prerenderVideo:fail cancelD
延后执行的预渲染任务被新任务打断

预渲染任务被新任务打断,尝试调整预渲染时机

3.16.0
128207prerenderVideo:fail timeout waiting for the current video to start playingD
等待当前视频开始播放超时

当前已有起播实例,尝试调整预渲染时机

3.16.0
128201prerenderVideo:fail API permission deniedI
关闭预渲染

平台关闭预渲染功能,可通过创建工单反馈,咨询功能开启计划

3.16.0
128204prerenderVideo:fail it is not a new componentF
小程序框架内部错误,有需要请创建工单咨询
3.16.0
174599prerenderVideo:fail the value of params.size should be greater than 0D
参数错误

检查参数

3.16.0

扫码体验

请使用字节宿主APP扫码

代码示例

开发者工具中预览

<view class="container"> <view class="body"> <view class="btn-area"> <button type="primary" size="default" bindtap="prerender">开始预渲染</button> <button type="primary" size="default" bindtap="play">复用预渲染的视频进行播放</button> <video tt:if="{{show}}" autoplay="{{true}}" src="{{src}}"></video> </view> </view> </view>
Page({ data: { srcList: [ "https://sf1-ttcdn-tos.pstatp.com/obj/ttfe/test/test-upload.mp4", "https://sf1-ttcdn-tos.pstatp.com/obj/developer/sdk/1534422848153.mp4", ], src: "", show: false, idx: 0, }, prerender() { this.setData( { idx: (this.data.idx + 1) % this.data.srcList.length }, () => { tt.prerenderVideo({ src: this.data.srcList[this.data.idx], success: (res) => { tt.showToast({ title: "预渲染成功", }); console.log(`预渲染成功,res = `, res); }, fail: (res) => { tt.showToast({ title: "预渲染失败", }); console.log(`预渲染失败,res = `, res); }, }); } ); }, play() { this.setData({ src: this.data.srcList[this.data.idx], show: true }); }, });