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

{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:21:52

动态模板渲染


直接渲染

//如果无需替换素材,可以用渲染引擎直接渲染
String path = "";//模板根目录
String json = "";//替换资源json
SXTemplate mTemplate = new SXTemplate(path, SXTemplate.TemplateUsage.kForRender);
mTemplate.setReplaceableJson(json);
SXTemplateRender render = new SXTemplateRender(mTemplate, null, outputPath);
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();

替换素材完整代码示例

String path = "";//模板根目录
String json = "";//替换资源json
SXTemplate mTemplate = new SXTemplate(path, SXTemplate.TemplateUsage.kForRender);
String jsonContent = "";//模板根目录下的config.json的字符串内容
String[] paths = ;//待替换的素材路径
SXConfigUtils utils = new SXConfigUtils(jsonContent);
JSONArray replaceJsonArray = new JSONArray(); //setReplaceableJson需要传入的是一个JsonArray对象
for(int i = 0; i < paths.length; i++) {
    JSONObject replaceJson = new JSONObject();
    replaceJson.put("main_file", paths[i]); //将每一个待替换素材路径装入main_file字段下
    JsonArray replaceArray = new JSONArray(); //创建可替换素材的JsonArray
    List<SXTemplateAsset> list = utils.getRelatedAssetForFile(i);//根据待替换的素材index构建需要替换的素材对象列表
    for (SXTemplateAsset sxTemplateAsset : list) {
        if (sxTemplateAsset.getReplaceType() == SX_REPLACE_TYPE_TEXT || sxTemplateAsset.getReplaceType() == SX_REPLACE_TYPE_POWER_TEXT) {
            JSONObject assetJson = new JSONObject(sxTemplateAsset.getAsstJson());
            if (assetJson.has("ui")) {
                JSONObject uiJson = new JSONObject(assetJson.getString("ui"));
                if (uiJson.has("default")) {
                    JSONObject subtitleJson = new JSONObject(); //创建可替换字幕的Json
                    subtitleJson.put("type", sxTemplateAsset.getReplaceType()); //设置类型
                    JSONObject attrJson = new JSONObject();
                    attrJson.put("text", "需要修改的字幕"); //往attr json中装入需要修改的字幕字符串
                    subtitleJson.put("attr", attrJson); 
                    replaceArray.put(subtitleJson); //往可替换素材JsonArray中添加字幕json
                }
            }
        }
    }
    replaceJson.put("replaces", replaceArray);
    replaceJsonArray.put(replaceJson);
}
sxTemplate.setReplaceableJson(jsonArray.toString());//把新构建的JsonArray对象传入模板
SXTemplateRender render = new SXTemplateRender(mTemplate, null, outputPath);
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(); //开始渲染
首页 > 安卓端 SDK > 动态模板接入 > 渲染
渲染
更新时间 : 2021-08-02 10:21:52
  • 云渲染
    • Demo下载
    • SDK
    • 开发指南
    • AI API 文档
    • 开发者 API 文档
    • 控制台指南
    • 快速入门
    • 产品简介
  • 模板SDK
    • 用户常见问题
    • Demo 下载
    • 开发指南
    • 服务端 SDK
    • iOS SDK
    • 安卓端 SDK
    • 产品简介
  • 剪辑SDK
    • Demo下载
    • SDK
    • 开发指南
    • 产品简介
  • 模板制作教程
    • 模板制作进阶教程
    • 测试模板素材案例下载
    • 常见模板制作案例
    • 模板制作教程
    • 模板制作工具下载
    • 入门指南
  • 剪辑制作教程
    • 剪辑特效导出教程
    • 剪辑特效测试素材
    • 剪辑特效制作工具下载
    • 入门指南

动态模板渲染


直接渲染

//如果无需替换素材,可以用渲染引擎直接渲染
String path = "";//模板根目录
String json = "";//替换资源json
SXTemplate mTemplate = new SXTemplate(path, SXTemplate.TemplateUsage.kForRender);
mTemplate.setReplaceableJson(json);
SXTemplateRender render = new SXTemplateRender(mTemplate, null, outputPath);
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();

替换素材完整代码示例

String path = "";//模板根目录
String json = "";//替换资源json
SXTemplate mTemplate = new SXTemplate(path, SXTemplate.TemplateUsage.kForRender);
String jsonContent = "";//模板根目录下的config.json的字符串内容
String[] paths = ;//待替换的素材路径
SXConfigUtils utils = new SXConfigUtils(jsonContent);
JSONArray replaceJsonArray = new JSONArray(); //setReplaceableJson需要传入的是一个JsonArray对象
for(int i = 0; i < paths.length; i++) {
    JSONObject replaceJson = new JSONObject();
    replaceJson.put("main_file", paths[i]); //将每一个待替换素材路径装入main_file字段下
    JsonArray replaceArray = new JSONArray(); //创建可替换素材的JsonArray
    List<SXTemplateAsset> list = utils.getRelatedAssetForFile(i);//根据待替换的素材index构建需要替换的素材对象列表
    for (SXTemplateAsset sxTemplateAsset : list) {
        if (sxTemplateAsset.getReplaceType() == SX_REPLACE_TYPE_TEXT || sxTemplateAsset.getReplaceType() == SX_REPLACE_TYPE_POWER_TEXT) {
            JSONObject assetJson = new JSONObject(sxTemplateAsset.getAsstJson());
            if (assetJson.has("ui")) {
                JSONObject uiJson = new JSONObject(assetJson.getString("ui"));
                if (uiJson.has("default")) {
                    JSONObject subtitleJson = new JSONObject(); //创建可替换字幕的Json
                    subtitleJson.put("type", sxTemplateAsset.getReplaceType()); //设置类型
                    JSONObject attrJson = new JSONObject();
                    attrJson.put("text", "需要修改的字幕"); //往attr json中装入需要修改的字幕字符串
                    subtitleJson.put("attr", attrJson); 
                    replaceArray.put(subtitleJson); //往可替换素材JsonArray中添加字幕json
                }
            }
        }
    }
    replaceJson.put("replaces", replaceArray);
    replaceJsonArray.put(replaceJson);
}
sxTemplate.setReplaceableJson(jsonArray.toString());//把新构建的JsonArray对象传入模板
SXTemplateRender render = new SXTemplateRender(mTemplate, null, outputPath);
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(); //开始渲染