更新时间 : 2021-08-02 10:25:14
SXTemplate
类的构造函数,并传入模板路径和SXTemplate.TemplateUsage
作为参数构建一个SXTemplate
实例对象。SXTemplate
实例的setReplaceableJson
函数,并传入需要替换素材的Json字符串作为参数来实现高级素材替换。SXTemplate
实例的setDrawTextCacheDir
函数,并传入缓存目录作为参数。SXTemplate
实例的enableSourcePrepare
函数。SXTemplate
实例的commit
函数创建渲染对象。SXTemplateRender
的构造函数,并传入SXTemplate
实例、音乐路径、输出文件路径作为参数构建一个SXTemplateRender
实例对象。SXTemplateRender
实例的setRenderListener
函数, 并传入SXRenderListener
对象设置视频渲染状态监听。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; //音频文件不支持
SXTemplate
类的构造函数,并传入模板路径和SXTemplate.TemplateUsage
作为参数构建一个SXTemplate
实例对象。SXTemplate
实例的setReplaceableJson
函数,并传入需要替换素材的Json字符串作为参数来实现高级素材替换。SXTemplate
实例的setDrawTextCacheDir
函数,并传入缓存目录作为参数。SXTemplate
实例的enableSourcePrepare
函数。SXTemplate
实例的commit
函数创建渲染对象。SXTemplateRender
的构造函数,并传入SXTemplate
实例、音乐路径、输出文件路径作为参数构建一个SXTemplateRender
实例对象。SXTemplateRender
实例的setRenderListener
函数, 并传入SXRenderListener
对象设置视频渲染状态监听。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; //音频文件不支持