更新时间 : 2021-11-16 10:48:06
需要通过SXConfigUtils 获取媒体素材对应的字幕
通过新的接口设置替换的文字
-(void)setReplaceableJson:(NSString *)replaceJson;
示例代码:
- (void)prepareRender {
NSString *configPath = [_templatePath stringByAppendingPathComponent:@"config.json"];
//根据config.json获取模板信息,并添加素材和替换字幕
SXConfigUtils *util = [[SXConfigUtils alloc] initWithPath:configPath fileCount:_resourceArr.count];
_resourcePath = [NSMutableArray array];
for (int i = 0; i<_resourceArr.count; i++) {
BlockbusterResourceModel *model = _resourceArr[i];
NSMutableDictionary *mainDic = [NSMutableDictionary new];
//添加素材
[mainDic setObject:model.resourcPath forKey:@"main_file"];
NSMutableArray *textarr = [NSMutableArray new];
NSArray<SXTemplateAsset *> *assets = [util getRelatedAssetForFile:i];
for (SXTemplateAsset *asset in assets) {
if (asset.replaceType == 3 || asset.replaceType == 4) {
//替换字幕
if ([_textDic objectForKey:[NSString stringWithFormat:@"%d",i]]) {
NSDictionary *itemTextDic = @{@"type":@(asset.replaceType),@"attr":@{@"text":[_textDic objectForKey:[NSString stringWithFormat:@"%d",i]]}};
[textarr addObject:itemTextDic];
}
}
}
[mainDic setObject:textarr forKey:@"replaces"];
[_resourcePath addObject:mainDic];
}
NSError *error;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:_resourcePath options:0 error:&error];
NSString *string = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
[_sxTemplate setReplaceableJson:string];
}
常用文字替换属性
“attr”:{
“text” : “”, //文字内容 超出截断
“adapt”: true,
//是否开启文字自适应,仅对文本框类型文字有效,默认关闭 (默认使用模版设计中的适配方式)
“fill” : “#FFFFFF”, //文字填充颜色 格式为RGB
“stroke”: “#FFFFFF”, //文字描边颜色 格式为RGB
“stroke_width”:0.0, //描边宽度
“stroke_over_fill”:false, //描边是否在填充之上
“size”:0, //文字大小, 单位为像素
“font_family”:””, //字体系列名称 (通过字体系列名称查找SDK中加载过的字体,推荐此中方式) | 二选一
“font_file”:”” //字体文件路径 (直接使用此字体,建议使用ttf字体,不推荐使用包含多种语言的字体集) | 二选一 }
需要通过SXConfigUtils 获取媒体素材对应的字幕
通过新的接口设置替换的文字
-(void)setReplaceableJson:(NSString *)replaceJson;
示例代码:
- (void)prepareRender {
NSString *configPath = [_templatePath stringByAppendingPathComponent:@"config.json"];
//根据config.json获取模板信息,并添加素材和替换字幕
SXConfigUtils *util = [[SXConfigUtils alloc] initWithPath:configPath fileCount:_resourceArr.count];
_resourcePath = [NSMutableArray array];
for (int i = 0; i<_resourceArr.count; i++) {
BlockbusterResourceModel *model = _resourceArr[i];
NSMutableDictionary *mainDic = [NSMutableDictionary new];
//添加素材
[mainDic setObject:model.resourcPath forKey:@"main_file"];
NSMutableArray *textarr = [NSMutableArray new];
NSArray<SXTemplateAsset *> *assets = [util getRelatedAssetForFile:i];
for (SXTemplateAsset *asset in assets) {
if (asset.replaceType == 3 || asset.replaceType == 4) {
//替换字幕
if ([_textDic objectForKey:[NSString stringWithFormat:@"%d",i]]) {
NSDictionary *itemTextDic = @{@"type":@(asset.replaceType),@"attr":@{@"text":[_textDic objectForKey:[NSString stringWithFormat:@"%d",i]]}};
[textarr addObject:itemTextDic];
}
}
}
[mainDic setObject:textarr forKey:@"replaces"];
[_resourcePath addObject:mainDic];
}
NSError *error;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:_resourcePath options:0 error:&error];
NSString *string = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
[_sxTemplate setReplaceableJson:string];
}
常用文字替换属性
“attr”:{
“text” : “”, //文字内容 超出截断
“adapt”: true,
//是否开启文字自适应,仅对文本框类型文字有效,默认关闭 (默认使用模版设计中的适配方式)
“fill” : “#FFFFFF”, //文字填充颜色 格式为RGB
“stroke”: “#FFFFFF”, //文字描边颜色 格式为RGB
“stroke_width”:0.0, //描边宽度
“stroke_over_fill”:false, //描边是否在填充之上
“size”:0, //文字大小, 单位为像素
“font_family”:””, //字体系列名称 (通过字体系列名称查找SDK中加载过的字体,推荐此中方式) | 二选一
“font_file”:”” //字体文件路径 (直接使用此字体,建议使用ttf字体,不推荐使用包含多种语言的字体集) | 二选一 }