扫一扫咨询方案
首页
登录/注册

{user.username}

ID: {user.id}

模板 SDK 文档

  • 云渲染

    • Demo下载
    • SDK
    • 开发指南
    • AI API 文档
    • 开发者 API 文档
    • 控制台指南
    • 快速入门
    • 产品简介
  • 模板SDK

    • 用户常见问题
    • Demo 下载
    • 开发指南
    • 服务端 SDK
    • 鸿蒙 SDK
    • iOS SDK
    • 安卓端 SDK
    • 产品简介
  • 剪辑SDK

    • Demo下载
    • SDK
    • 开发指南
    • 产品简介
  • 模板制作教程

    • 模板制作进阶教程
    • 测试模板素材案例下载
    • 常见模板制作案例
    • 模板制作教程
    • 模板制作工具下载
    • 入门指南
  • 剪辑制作教程

    • 剪辑特效导出教程
    • 剪辑特效测试素材
    • 剪辑特效制作工具下载
    • 入门指南
产品简介
安卓端 SDK
iOS SDK
鸿蒙 SDK
服务端 SDK
开发指南
Demo 下载
用户常见问题
首页 > 预览

预览

更新时间 : 2026-03-23 16:37:39

标准模板预览


标准模板预览流程

  1. 调用用SXTemplate类的静态函数createWithFolder,并传入模板路径和SXTemplate.TemplateUsage.kForPreview作为参数构建一个SXTemplate实例对象。
  2. 调用SXTemplate实例的setReplaceableJson函数,并传入需要替换素材的Json字符串作为参数来实现高级素材替换。
  3. (可选)在上一步中替换文字时需要设置文字生成图片缓存目录,调用SXTemplate实例的setDrawTextCacheDir函数,并传入缓存目录作为参数。
  4. (可选)开启素材预加载,开启后会提升渲染速度,同时会增加内存的使用,小内存手机谨慎启用,调用SXTemplate实例的enableSourcePrepare函数。
  5. 调用SXTemplate实例的commit函数创建渲染对象。
  6. 调用SXTemplatePlayer的构造函数传入SXTemplate的实例对象作为参数,构建一个SXTemplatePlayer实例对象。
  7. 调用SXTemplatePlayer实例对象的setXComponent方法传入鸿蒙XComponent组件作为播放容器。
  8. 调用SXTemplatePlayer实例对象的setPlayerCallback方法监听播放进度。
  9. 调用SXTemplatePlayer实例对象的play方法开启预览。

    代码示例

//鸿蒙XComponent组件示例
xcomponentController: XComponentController = new XComponentController()
XComponent({
    id: 'templateXComponent',
    type: 'surface',
    controller: this.xcomponentController
})

let path: string = "";//模板根目录
let json: string = "";//替换资源json
let mTemplate: SXTemplate = SXTemplate.createWithFolder(path, SXTemplate.TemplateUsage.kForPreview);
mTemplate.setReplaceableJson(json);
mTemplate.commit();
let player: SXTemplatePlayer = new SXTemplatePlayer(this.template, null);
player.setPlayerCallback((frame: number) => {
    //frame为第几帧
    hilog.info(0x0000, 'SXVideoEngine', 'frameIndex %{public}d', frame);
}, () => {
    hilog.info(0x0000, 'SXVideoEngine', 'finish');
})
//传入XComponent surface id
player.setXComponent(this.xcomponentController.getXComponentSurfaceId());
mPlayer.start(); //开始预览

注意事项

  1. 如模板复杂的话commit会比较耗时,如要避免卡顿应放在线程里。
首页 > 预览
预览
更新时间 : 2026-03-23 16:37:39
  • 云渲染
    • Demo下载
    • SDK
    • 开发指南
    • AI API 文档
    • 开发者 API 文档
    • 控制台指南
    • 快速入门
    • 产品简介
  • 模板SDK
    • 用户常见问题
    • Demo 下载
    • 开发指南
    • 服务端 SDK
    • 鸿蒙 SDK
    • iOS SDK
    • 安卓端 SDK
    • 产品简介
  • 剪辑SDK
    • Demo下载
    • SDK
    • 开发指南
    • 产品简介
  • 模板制作教程
    • 模板制作进阶教程
    • 测试模板素材案例下载
    • 常见模板制作案例
    • 模板制作教程
    • 模板制作工具下载
    • 入门指南
  • 剪辑制作教程
    • 剪辑特效导出教程
    • 剪辑特效测试素材
    • 剪辑特效制作工具下载
    • 入门指南

标准模板预览


标准模板预览流程

  1. 调用用SXTemplate类的静态函数createWithFolder,并传入模板路径和SXTemplate.TemplateUsage.kForPreview作为参数构建一个SXTemplate实例对象。
  2. 调用SXTemplate实例的setReplaceableJson函数,并传入需要替换素材的Json字符串作为参数来实现高级素材替换。
  3. (可选)在上一步中替换文字时需要设置文字生成图片缓存目录,调用SXTemplate实例的setDrawTextCacheDir函数,并传入缓存目录作为参数。
  4. (可选)开启素材预加载,开启后会提升渲染速度,同时会增加内存的使用,小内存手机谨慎启用,调用SXTemplate实例的enableSourcePrepare函数。
  5. 调用SXTemplate实例的commit函数创建渲染对象。
  6. 调用SXTemplatePlayer的构造函数传入SXTemplate的实例对象作为参数,构建一个SXTemplatePlayer实例对象。
  7. 调用SXTemplatePlayer实例对象的setXComponent方法传入鸿蒙XComponent组件作为播放容器。
  8. 调用SXTemplatePlayer实例对象的setPlayerCallback方法监听播放进度。
  9. 调用SXTemplatePlayer实例对象的play方法开启预览。

    代码示例

//鸿蒙XComponent组件示例
xcomponentController: XComponentController = new XComponentController()
XComponent({
    id: 'templateXComponent',
    type: 'surface',
    controller: this.xcomponentController
})

let path: string = "";//模板根目录
let json: string = "";//替换资源json
let mTemplate: SXTemplate = SXTemplate.createWithFolder(path, SXTemplate.TemplateUsage.kForPreview);
mTemplate.setReplaceableJson(json);
mTemplate.commit();
let player: SXTemplatePlayer = new SXTemplatePlayer(this.template, null);
player.setPlayerCallback((frame: number) => {
    //frame为第几帧
    hilog.info(0x0000, 'SXVideoEngine', 'frameIndex %{public}d', frame);
}, () => {
    hilog.info(0x0000, 'SXVideoEngine', 'finish');
})
//传入XComponent surface id
player.setXComponent(this.xcomponentController.getXComponentSurfaceId());
mPlayer.start(); //开始预览

注意事项

  1. 如模板复杂的话commit会比较耗时,如要避免卡顿应放在线程里。