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

{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-02-22 09:31:17

1. 核心类介绍

  1. SXTemplate
    模板对象类,负责读取模板文件内容,创建一个可使用的模板实例,并对模板内容进行自定义修改。 对于iOS SDK 来说,标准模板和动态模板是相同的创建流程,只是根据模板不同传入的素材各有不同。
  2. SXTemplateRender
    配合SXTemplate对象对模板进行渲染输出到视频文件
  3. SXTemplatePlayer
    配合SXTemplate对象对模板进行预览输出到屏幕
  4. SXPlayerView
    和SXTemplatePlayer配合使用的界面显示视图。主要任务是确保该视图类型支持预览渲染。并且当用户设置视图显示尺寸时在内部对视图进行合适的尺寸处理。

2. License使用

  1. License需要根据一些特定信息生成,根据网站指引获取。

  2. 使用SDK功能前必须注册合法的License,否则无法使用SDK。

  3. License失效控制台会打印信息,可以检查控制台信息查看问题。

3. 文字替换

  1. 使用 SXTextCanvas 来生成包含文字内容的图片,通过属性设置来设置文字属性。可以通过saveToPath方法来保存生成的图片到指定路径。当然这一步也可以通过自己绘制生成文字内容的图片。

    SXTextCanvas 绘制的文字可能会因为设置的宽高不足导致绘制不完整,可以调整字号以及大小来适配需求,也提供 adjustSize 方法来根据当前size自适应字体大小,文字最小支持到4号,最大为设置的字体大小。 SXTextCanvas 不做文字长度的自动裁剪与限制,所以有需求可以先裁剪文字到需要的长度再传入对象进行绘制。

  2. 调用SXTemplate里的方法来替换指定UIKey对应的素材,需要与模板设计相配合。

    /**
    * 根据UI key 来修改某个指定素材的文件路径  
    * @warning 该接口只有在commit之前调用有效  
    * @param filePath  新的文件路径  
    * @param uiKey     指定的UI key  
    * @return          是否修改成功  
    */
    -(BOOL)setFile:(NSString *)filePath forUIKey:(NSString *)uiKey;

4. 图片素材编辑

  1. SDK中不提供图片素材编辑的功能,只使用提供的图片进行渲染或者预览操作。图片素材的裁剪需要用户自己完成,demo提供部分裁剪的示例方式,并不代表是最佳实现方法。

  2. 从相册选取图片,demo中使用的是缩略图,可能会导致选取的图片模糊,用户可以自行调整图片选取方式,使用原图进行操作。SDK对此没有限制,但图片过大会影响速度,可以根据需求自行调节需要图片素材的大小。

  3. 传入SDK的图片即setReplaceableFilePaths 方法里传入路径所对应的图片,可以直接找到路径对应的图片查看是否与自己期望的一致。

5. 视频素材编辑

  1. 选择视频素材,需要对视频素材进行编辑,可以使用SXVideoCompositor类。 比较典型的是修改transform即对视频素材进行旋转位移缩放,具体变化的计算可以参考demo。 下面是示例代码。

    NSURL * sourceFile = [NSURL fileURLWithPath:@"source path"];
    NSURL * outputFile = [NSURL fileURLWithPath:@"output path"];
    
    SXVideoCompositor * videoCompositor = [[SXVideoCompositor alloc] init:sourceFile output:outputFile];
    
    // 设置所需时间
    [videoCompositor setOutputRange:CMTimeRangeMake(kCMTimeZero, CMTimeMakeWithSeconds(duration, 6000))];
    
    // 设置音量
    [videoCompositor setSourceVolume:0];
    
    // 如果对视频的位置,尺寸进行了变换
    [videoCompositor setOutputTransform:renderTransform];
    
    [videoCompositor finish:VIDEO_EXPORT_PRESET_HIGH finishHandle:^(BOOL success) {
        NSLog(success ? @"success":@"false");
    }];

6. 收费方式

  1. 目前iOS SDK只有一套,不同的付费方式使用的SDK是一致的。

7. 渲染或者预览失败

  1. 检查license是否可用,无效控制台会打印信息。

  2. 检查渲染或预览的调用流程是否按照规定顺序,顺序参考相关文档。 渲染模板 预览模板

  3. 渲染失败的回调里会传入一个error做参数,可以查看失败的相关信息。

8. 内存问题

由于移动端设备的硬件限制,对内存限制比较苛刻,当内存使用过大可能会造成闪退,所以使用时可能需要注意一下这方面的问题。目前我们建议在以下方面进行优化处理,我们后续也会更注意优化SDK的内存问题。
  1. 对模板进行优化,可以提高渲染速度也可以优化部分内存。可以参考下面的链接 模板渲染速度提升技巧

  2. 当出现内存警告时,可以取消渲染来保证程序的稳定。

  3. 对于低端机型,可用内存可能更少,尽可能减少视频文件作为素材。

  4. 对高清的视频进行预处理,减少后续渲染时所需要的内存也可以提高渲染速度。

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

1. 核心类介绍

  1. SXTemplate
    模板对象类,负责读取模板文件内容,创建一个可使用的模板实例,并对模板内容进行自定义修改。 对于iOS SDK 来说,标准模板和动态模板是相同的创建流程,只是根据模板不同传入的素材各有不同。
  2. SXTemplateRender
    配合SXTemplate对象对模板进行渲染输出到视频文件
  3. SXTemplatePlayer
    配合SXTemplate对象对模板进行预览输出到屏幕
  4. SXPlayerView
    和SXTemplatePlayer配合使用的界面显示视图。主要任务是确保该视图类型支持预览渲染。并且当用户设置视图显示尺寸时在内部对视图进行合适的尺寸处理。

2. License使用

  1. License需要根据一些特定信息生成,根据网站指引获取。

  2. 使用SDK功能前必须注册合法的License,否则无法使用SDK。

  3. License失效控制台会打印信息,可以检查控制台信息查看问题。

3. 文字替换

  1. 使用 SXTextCanvas 来生成包含文字内容的图片,通过属性设置来设置文字属性。可以通过saveToPath方法来保存生成的图片到指定路径。当然这一步也可以通过自己绘制生成文字内容的图片。

    SXTextCanvas 绘制的文字可能会因为设置的宽高不足导致绘制不完整,可以调整字号以及大小来适配需求,也提供 adjustSize 方法来根据当前size自适应字体大小,文字最小支持到4号,最大为设置的字体大小。 SXTextCanvas 不做文字长度的自动裁剪与限制,所以有需求可以先裁剪文字到需要的长度再传入对象进行绘制。

  2. 调用SXTemplate里的方法来替换指定UIKey对应的素材,需要与模板设计相配合。

    /**
    * 根据UI key 来修改某个指定素材的文件路径  
    * @warning 该接口只有在commit之前调用有效  
    * @param filePath  新的文件路径  
    * @param uiKey     指定的UI key  
    * @return          是否修改成功  
    */
    -(BOOL)setFile:(NSString *)filePath forUIKey:(NSString *)uiKey;

4. 图片素材编辑

  1. SDK中不提供图片素材编辑的功能,只使用提供的图片进行渲染或者预览操作。图片素材的裁剪需要用户自己完成,demo提供部分裁剪的示例方式,并不代表是最佳实现方法。

  2. 从相册选取图片,demo中使用的是缩略图,可能会导致选取的图片模糊,用户可以自行调整图片选取方式,使用原图进行操作。SDK对此没有限制,但图片过大会影响速度,可以根据需求自行调节需要图片素材的大小。

  3. 传入SDK的图片即setReplaceableFilePaths 方法里传入路径所对应的图片,可以直接找到路径对应的图片查看是否与自己期望的一致。

5. 视频素材编辑

  1. 选择视频素材,需要对视频素材进行编辑,可以使用SXVideoCompositor类。 比较典型的是修改transform即对视频素材进行旋转位移缩放,具体变化的计算可以参考demo。 下面是示例代码。

    NSURL * sourceFile = [NSURL fileURLWithPath:@"source path"];
    NSURL * outputFile = [NSURL fileURLWithPath:@"output path"];
    
    SXVideoCompositor * videoCompositor = [[SXVideoCompositor alloc] init:sourceFile output:outputFile];
    
    // 设置所需时间
    [videoCompositor setOutputRange:CMTimeRangeMake(kCMTimeZero, CMTimeMakeWithSeconds(duration, 6000))];
    
    // 设置音量
    [videoCompositor setSourceVolume:0];
    
    // 如果对视频的位置,尺寸进行了变换
    [videoCompositor setOutputTransform:renderTransform];
    
    [videoCompositor finish:VIDEO_EXPORT_PRESET_HIGH finishHandle:^(BOOL success) {
        NSLog(success ? @"success":@"false");
    }];

6. 收费方式

  1. 目前iOS SDK只有一套,不同的付费方式使用的SDK是一致的。

7. 渲染或者预览失败

  1. 检查license是否可用,无效控制台会打印信息。

  2. 检查渲染或预览的调用流程是否按照规定顺序,顺序参考相关文档。 渲染模板 预览模板

  3. 渲染失败的回调里会传入一个error做参数,可以查看失败的相关信息。

8. 内存问题

由于移动端设备的硬件限制,对内存限制比较苛刻,当内存使用过大可能会造成闪退,所以使用时可能需要注意一下这方面的问题。目前我们建议在以下方面进行优化处理,我们后续也会更注意优化SDK的内存问题。
  1. 对模板进行优化,可以提高渲染速度也可以优化部分内存。可以参考下面的链接 模板渲染速度提升技巧

  2. 当出现内存警告时,可以取消渲染来保证程序的稳定。

  3. 对于低端机型,可用内存可能更少,尽可能减少视频文件作为素材。

  4. 对高清的视频进行预处理,减少后续渲染时所需要的内存也可以提高渲染速度。