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

{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 下载
用户常见问题
首页 > iOS SDK > 动态模板接入 > 添加字幕

添加字幕

更新时间 : 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字体,不推荐使用包含多种语言的字体集) | 二选一 }

首页 > iOS SDK > 动态模板接入 > 添加字幕
添加字幕
更新时间 : 2021-11-16 10:48:06
  • 云渲染
    • Demo下载
    • SDK
    • 开发指南
    • AI API 文档
    • 开发者 API 文档
    • 控制台指南
    • 快速入门
    • 产品简介
  • 模板SDK
    • 用户常见问题
    • Demo 下载
    • 开发指南
    • 服务端 SDK
    • iOS SDK
    • 安卓端 SDK
    • 产品简介
  • 剪辑SDK
    • Demo下载
    • SDK
    • 开发指南
    • 产品简介
  • 模板制作教程
    • 模板制作进阶教程
    • 测试模板素材案例下载
    • 常见模板制作案例
    • 模板制作教程
    • 模板制作工具下载
    • 入门指南
  • 剪辑制作教程
    • 剪辑特效导出教程
    • 剪辑特效测试素材
    • 剪辑特效制作工具下载
    • 入门指南

添加字幕

需要通过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字体,不推荐使用包含多种语言的字体集) | 二选一 }