更新时间 : 2021-07-21 09:59:15
调用SXTemplate对象的setReplaceableFilePaths方法传入用户自定义素材
调用SXTemplatePlayer类的initWithTemplate构造函数,并传入SXTemplate对象和背景音乐路径来创建一个SXTemplatePlayer实例对象
调用commit创建渲染对象
(可选) 利用UI Key等自定义逻辑对模板渲染对象进行精细修改调节
调用SXTemplatePlayer对象的getPlayerView方法来获取和播放器绑定的UIView对象,并将其加载到界面上用于显示预览画面
设置SXTemplatePlayer对象的delegate参数来设置播放状态监听委托对象
调用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;
}
注意事项
SXTemplate初始化时type类型为预览 SXTemplateUsagePreview
注意方法调用的顺序,顺序不对可能会导致异常
如果从相册里选择的素材需要进行裁剪,可以参考demo,SDK不提供素材预处理操作
对于预览方法来说,普通模板和动态模板调用方法一致
在 SXTemplatePlayer 释放前调用 stop 方法释放资源, stop 后需要重新调用 commit 方法,如果不是释放 player 暂停建议使用 pause 方法。
由于屏幕刷新频率一秒60次,建议帧速率设置在15, 20, 30, 60中的一种,否则预览容易产生误差
调用SXTemplate对象的setReplaceableFilePaths方法传入用户自定义素材
调用SXTemplatePlayer类的initWithTemplate构造函数,并传入SXTemplate对象和背景音乐路径来创建一个SXTemplatePlayer实例对象
调用commit创建渲染对象
(可选) 利用UI Key等自定义逻辑对模板渲染对象进行精细修改调节
调用SXTemplatePlayer对象的getPlayerView方法来获取和播放器绑定的UIView对象,并将其加载到界面上用于显示预览画面
设置SXTemplatePlayer对象的delegate参数来设置播放状态监听委托对象
调用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;
}
注意事项
SXTemplate初始化时type类型为预览 SXTemplateUsagePreview
注意方法调用的顺序,顺序不对可能会导致异常
如果从相册里选择的素材需要进行裁剪,可以参考demo,SDK不提供素材预处理操作
对于预览方法来说,普通模板和动态模板调用方法一致
在 SXTemplatePlayer 释放前调用 stop 方法释放资源, stop 后需要重新调用 commit 方法,如果不是释放 player 暂停建议使用 pause 方法。
由于屏幕刷新频率一秒60次,建议帧速率设置在15, 20, 30, 60中的一种,否则预览容易产生误差