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

{user.username}

ID: {user.id}

模板 SDK 文档

  • 云渲染

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

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

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

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

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

模板创建

更新时间 : 2021-08-02 10:25:14

模板创建


动态模板创建流程

  1. 调用SXTemplate类的构造函数,并传入模板路径和SXTemplate.TemplateUsage作为参数构建一个SXTemplate实例对象。
  2. 调用SXTemplate实例的setReplaceableJson函数,并传入需要替换素材的Json字符串作为参数来实现高级素材替换。
  3. (可选)在上一步中替换文字时需要设置文字生成图片缓存目录,调用SXTemplate实例的setDrawTextCacheDir函数,并传入缓存目录作为参数。
  4. (可选)开启素材预加载,开启后会提升渲染速度,同时会增加内存的使用,小内存手机谨慎启用,调用SXTemplate实例的enableSourcePrepare函数。
  5. 调用SXTemplate实例的commit函数创建渲染对象。
  6. (可选)利用UI Key等自定义逻辑对模板渲染对象进行精细修改调节。
  7. (可选)调用SXTemplateRender的构造函数,并传入SXTemplate实例、音乐路径、输出文件路径作为参数构建一个SXTemplateRender实例对象。
  8. 调用SXTemplateRender实例的setRenderListener函数, 并传入SXRenderListener对象设置视频渲染状态监听。
  9. 调用SXTemplateRender实例的start方法开始渲染。

    代码示例

    String path = "";//模板根目录
    String json = "";//替换资源json
    SXTemplate mTemplate = new SXTemplate(path, SXTemplate.TemplateUsage.kForRender);
    mTemplate.setReplaceableJson(json);
    mTemplate.enableSourcePrepare();
    mTemplate.setDrawTextCacheDir(getExternalCacheDir().getPath());
    mTemplate.commit();
    String outputPath = ;//生成的视频路径
    //音频路径传null会默认寻找模板根目录下的music.mp3或music.aac音频文件
    SXTemplateRender render = new SXTemplateRender(mTemplate, null, outputPath);
    //listener方法在UI线程回调
    render.setRenderListener(new SXRenderListener() {
    @Override
    public void onStart() {
    }
    @Override
    public void onUpdate(int progress) {
        //进度回调,progress为第几帧
    }
    @Override
    public void onFinish(boolean success, String msg) {
        //success为true渲染成功,为false时渲染失败,msg是失败原因
    }
    @Override
    public void onCancel() {
    }
    });
    render.start();

    错误码

    onFinish回调success为false时可调用SXTemplateRender的getErrorCode方法获取错误码

    NO_ERROR = 0;
    UNKNOWN_ERROR = 1; // 其它异常,可在onFinish回调的msg参数中查看具体信息
    CANCELLED = 2; // 渲染取消
    LICENSE_ERROR = 3; // license包名不匹配,过期,不包含模板所需所有功能等错误
    CODEC_ERROR = 4; // 硬件编码器MediaCodec配置错误
    NETWORK_ERROR = 5; // 按次付费类型请求网络异常
    AUDIO_NOT_SUPPORT = 6; //音频文件不支持
首页 > 安卓端 SDK > 动态模板接入 > 模板创建
模板创建
更新时间 : 2021-08-02 10:25:14
  • 云渲染
    • Demo下载
    • SDK
    • 开发指南
    • AI API 文档
    • 开发者 API 文档
    • 控制台指南
    • 快速入门
    • 产品简介
  • 模板SDK
    • 用户常见问题
    • Demo 下载
    • 开发指南
    • 服务端 SDK
    • iOS SDK
    • 安卓端 SDK
    • 产品简介
  • 剪辑SDK
    • Demo下载
    • SDK
    • 开发指南
    • 产品简介
  • 模板制作教程
    • 模板制作进阶教程
    • 测试模板素材案例下载
    • 常见模板制作案例
    • 模板制作教程
    • 模板制作工具下载
    • 入门指南
  • 剪辑制作教程
    • 剪辑特效导出教程
    • 剪辑特效测试素材
    • 剪辑特效制作工具下载
    • 入门指南

模板创建


动态模板创建流程

  1. 调用SXTemplate类的构造函数,并传入模板路径和SXTemplate.TemplateUsage作为参数构建一个SXTemplate实例对象。
  2. 调用SXTemplate实例的setReplaceableJson函数,并传入需要替换素材的Json字符串作为参数来实现高级素材替换。
  3. (可选)在上一步中替换文字时需要设置文字生成图片缓存目录,调用SXTemplate实例的setDrawTextCacheDir函数,并传入缓存目录作为参数。
  4. (可选)开启素材预加载,开启后会提升渲染速度,同时会增加内存的使用,小内存手机谨慎启用,调用SXTemplate实例的enableSourcePrepare函数。
  5. 调用SXTemplate实例的commit函数创建渲染对象。
  6. (可选)利用UI Key等自定义逻辑对模板渲染对象进行精细修改调节。
  7. (可选)调用SXTemplateRender的构造函数,并传入SXTemplate实例、音乐路径、输出文件路径作为参数构建一个SXTemplateRender实例对象。
  8. 调用SXTemplateRender实例的setRenderListener函数, 并传入SXRenderListener对象设置视频渲染状态监听。
  9. 调用SXTemplateRender实例的start方法开始渲染。

    代码示例

    String path = "";//模板根目录
    String json = "";//替换资源json
    SXTemplate mTemplate = new SXTemplate(path, SXTemplate.TemplateUsage.kForRender);
    mTemplate.setReplaceableJson(json);
    mTemplate.enableSourcePrepare();
    mTemplate.setDrawTextCacheDir(getExternalCacheDir().getPath());
    mTemplate.commit();
    String outputPath = ;//生成的视频路径
    //音频路径传null会默认寻找模板根目录下的music.mp3或music.aac音频文件
    SXTemplateRender render = new SXTemplateRender(mTemplate, null, outputPath);
    //listener方法在UI线程回调
    render.setRenderListener(new SXRenderListener() {
    @Override
    public void onStart() {
    }
    @Override
    public void onUpdate(int progress) {
        //进度回调,progress为第几帧
    }
    @Override
    public void onFinish(boolean success, String msg) {
        //success为true渲染成功,为false时渲染失败,msg是失败原因
    }
    @Override
    public void onCancel() {
    }
    });
    render.start();

    错误码

    onFinish回调success为false时可调用SXTemplateRender的getErrorCode方法获取错误码

    NO_ERROR = 0;
    UNKNOWN_ERROR = 1; // 其它异常,可在onFinish回调的msg参数中查看具体信息
    CANCELLED = 2; // 渲染取消
    LICENSE_ERROR = 3; // license包名不匹配,过期,不包含模板所需所有功能等错误
    CODEC_ERROR = 4; // 硬件编码器MediaCodec配置错误
    NETWORK_ERROR = 5; // 按次付费类型请求网络异常
    AUDIO_NOT_SUPPORT = 6; //音频文件不支持