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

{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-07-21 09:59:15

预览模板预览模板流程

  1. 调用SXTemplate类的构造函数,并传入模板路径和SXTemplateUsagePreview作为参数构建一个SXTemplate实例对象
  2. 调用SXTemplate对象的setReplaceableFilePaths方法传入用户自定义素材

  3. 调用SXTemplatePlayer类的initWithTemplate构造函数,并传入SXTemplate对象和背景音乐路径来创建一个SXTemplatePlayer实例对象

  4. 调用commit创建渲染对象

  5. (可选) 利用UI Key等自定义逻辑对模板渲染对象进行精细修改调节

  6. 调用SXTemplatePlayer对象的getPlayerView方法来获取和播放器绑定的UIView对象,并将其加载到界面上用于显示预览画面

  7. 设置SXTemplatePlayer对象的delegate参数来设置播放状态监听委托对象

  8. 调用SXTemplatePlayer对象start,seek,pause,stop等方法对播放状态进行控制

代码示例

//创建模板
SXTemplate *sxtemplate = [[SXTemplate alloc] init:_templatePath type:SXTemplateUsagePreview];

//在传入播放器前可以先执行素材添加替换代码

//创建播放器
self.indexTemplatePlayer = [[SXTemplatePlayer alloc] initWithTemplate:sxtemplate audioPath:musicPath];
self.indexTemplatePlayer.delegate = self;

UIView *playView = [self.indexTemplatePlayer getPlayerView];
playView.layer.cornerRadius = 2;
int videoWidth = [sxtemplate mainCompWidth];
int videoHeight = [sxtemplate mainCompHeight];

CGFloat eventHeight = 1;
eventHeight = kScreenHeight - 200;
if (isIphoneX) {
    eventHeight = kScreenHeight - 300;
}
CGFloat nowScale = [self scaleEvent:CGSizeMake(videoWidth, videoHeight) minSize:CGSizeMake((kScreen_Width - 140), eventHeight)];
playView.frame = CGRectMake(0, 0, videoWidth * nowScale, videoHeight * nowScale);
playView.centerX = kScreen_Width/2;
playView.centerY = kScreenHeight/2 - 50;

[sxtemplate commit];

//暂停播放
[self.indexTemplatePlayer pause];
//播放跳转
[self.indexTemplatePlayer seek:sender.value];
//开始播放
[self.indexTemplatePlayer start];

//播放进度回调
- (void)playFrameIndex:(NSInteger)frameIndex {

}

//根据传入的大小,计算画布的大小
- (CGFloat)scaleEvent:(CGSize)originSize minSize:(CGSize)minSize {

    float widthScale = minSize.width/originSize.width;
    float heightScale = minSize.height/originSize.height;

    float minScale = MIN(widthScale, heightScale);
    return minScale;
}

注意事项

  1. SXTemplate初始化时type类型为预览 SXTemplateUsagePreview

  2. 注意方法调用的顺序,顺序不对可能会导致异常

  3. 如果从相册里选择的素材需要进行裁剪,可以参考demo,SDK不提供素材预处理操作

  4. 对于预览方法来说,普通模板和动态模板调用方法一致

  5. 在 SXTemplatePlayer 释放前调用 stop 方法释放资源, stop 后需要重新调用 commit 方法,如果不是释放 player 暂停建议使用 pause 方法。

  6. 由于屏幕刷新频率一秒60次,建议帧速率设置在15, 20, 30, 60中的一种,否则预览容易产生误差

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

预览模板预览模板流程

  1. 调用SXTemplate类的构造函数,并传入模板路径和SXTemplateUsagePreview作为参数构建一个SXTemplate实例对象
  2. 调用SXTemplate对象的setReplaceableFilePaths方法传入用户自定义素材

  3. 调用SXTemplatePlayer类的initWithTemplate构造函数,并传入SXTemplate对象和背景音乐路径来创建一个SXTemplatePlayer实例对象

  4. 调用commit创建渲染对象

  5. (可选) 利用UI Key等自定义逻辑对模板渲染对象进行精细修改调节

  6. 调用SXTemplatePlayer对象的getPlayerView方法来获取和播放器绑定的UIView对象,并将其加载到界面上用于显示预览画面

  7. 设置SXTemplatePlayer对象的delegate参数来设置播放状态监听委托对象

  8. 调用SXTemplatePlayer对象start,seek,pause,stop等方法对播放状态进行控制

代码示例

//创建模板
SXTemplate *sxtemplate = [[SXTemplate alloc] init:_templatePath type:SXTemplateUsagePreview];

//在传入播放器前可以先执行素材添加替换代码

//创建播放器
self.indexTemplatePlayer = [[SXTemplatePlayer alloc] initWithTemplate:sxtemplate audioPath:musicPath];
self.indexTemplatePlayer.delegate = self;

UIView *playView = [self.indexTemplatePlayer getPlayerView];
playView.layer.cornerRadius = 2;
int videoWidth = [sxtemplate mainCompWidth];
int videoHeight = [sxtemplate mainCompHeight];

CGFloat eventHeight = 1;
eventHeight = kScreenHeight - 200;
if (isIphoneX) {
    eventHeight = kScreenHeight - 300;
}
CGFloat nowScale = [self scaleEvent:CGSizeMake(videoWidth, videoHeight) minSize:CGSizeMake((kScreen_Width - 140), eventHeight)];
playView.frame = CGRectMake(0, 0, videoWidth * nowScale, videoHeight * nowScale);
playView.centerX = kScreen_Width/2;
playView.centerY = kScreenHeight/2 - 50;

[sxtemplate commit];

//暂停播放
[self.indexTemplatePlayer pause];
//播放跳转
[self.indexTemplatePlayer seek:sender.value];
//开始播放
[self.indexTemplatePlayer start];

//播放进度回调
- (void)playFrameIndex:(NSInteger)frameIndex {

}

//根据传入的大小,计算画布的大小
- (CGFloat)scaleEvent:(CGSize)originSize minSize:(CGSize)minSize {

    float widthScale = minSize.width/originSize.width;
    float heightScale = minSize.height/originSize.height;

    float minScale = MIN(widthScale, heightScale);
    return minScale;
}

注意事项

  1. SXTemplate初始化时type类型为预览 SXTemplateUsagePreview

  2. 注意方法调用的顺序,顺序不对可能会导致异常

  3. 如果从相册里选择的素材需要进行裁剪,可以参考demo,SDK不提供素材预处理操作

  4. 对于预览方法来说,普通模板和动态模板调用方法一致

  5. 在 SXTemplatePlayer 释放前调用 stop 方法释放资源, stop 后需要重新调用 commit 方法,如果不是释放 player 暂停建议使用 pause 方法。

  6. 由于屏幕刷新频率一秒60次,建议帧速率设置在15, 20, 30, 60中的一种,否则预览容易产生误差