扫一扫咨询方案
更新时间 : 2021-02-22 09:31:30
调用SXTemplate类的构造函数,并传入模板路径和SXTemplateUsagePreview作为参数构建一个SXTemplate实例对象
调用SXTemplate对象的setReplaceableFilePaths方法传入用户自定义素材
调用SXTemplatePlayer类的initWithTemplate构造函数,并传入SXTemplate对象和背景音乐路径来创建一个SXTemplatePlayer实例对象
调用commit创建渲染对象
(可选) 利用UI Key等自定义逻辑对模板渲染对象进行精细修改调节
调用SXTemplatePlayer对象的getPlayerView方法来获取和播放器绑定的UIView对象,并将其加载到界面上用于显示预览画面
设置SXTemplatePlayer对象的delegate参数来设置播放状态监听委托对象
调用SXTemplatePlayer对象start,seek,pause,stop等方法对播放状态进行控制
SXTemplate *sxTemplate = [[SXTemplate alloc] init:@"Your template path" type:SXTemplateUsagePreview];
[sxTemplate setReplaceableFilePaths:@[@"asset path"]];
SXTemplatePlayer *player = [[SXTemplatePlayer alloc] initWithTemplate:sxTemplate audioPath:@"audio path"];
UIView *playView = [player getPlayerView];
int videoWidth = [sxTemplate mainCompWidth];
int videoHeight = [sxTemplate mainCompHeight];
CGFloat scale = videoHeight / self.view.bounds.size.height;
playView.bounds = CGRectMake(0, 0, videoWidth / scale, self.view.bounds.size.height);
playView.center = CGPointMake(self.view.bounds.size.width/2, self.view.bounds.size.height / 2);
[self.view addSubview:playView];
player.delegate = self;
[sxTemplate commit];
[player start];
SXTemplatePlayer只是实时预览,不可以直接生成视频文件。
但是SXTemplatePlayer提供录制方法,可以录制当前屏幕上正在渲染的画面,通过delegate回调获取结果。
-(void)startRecord;// 开始录制当前预览的界面
-(void)cancelRecord;//取消本次录制
-(void)stopRecord;// 结束录制当前预览的界面
-(BOOL)isRecord;// 是否正在录制
SXTemplate初始化时type类型为预览 SXTemplateUsagePreview
注意方法调用的顺序,顺序不对可能会导致异常
替换素材提供的图片路径需要是本地图片路径
-(void) setReplaceableFilePaths:(NSArray<NSString*>*) filePaths;
如果从相册里选择的素材需要进行裁剪,可以参考demo,SDK不提供素材预处理操作
对于预览方法来说,普通模板和动态模板调用方法一致
在 SXTemplatePlayer 释放前调用 stop 方法释放资源, stop 后需要重新调用 commit 方法,如果不是释放 player 暂停建议使用 pause 方法。
由于屏幕刷新频率一秒60次,建议帧速率设置在15, 20, 30, 60中的一种,否则预览容易产生误差

调用SXTemplate类的构造函数,并传入模板路径和SXTemplateUsagePreview作为参数构建一个SXTemplate实例对象
调用SXTemplate对象的setReplaceableFilePaths方法传入用户自定义素材
调用SXTemplatePlayer类的initWithTemplate构造函数,并传入SXTemplate对象和背景音乐路径来创建一个SXTemplatePlayer实例对象
调用commit创建渲染对象
(可选) 利用UI Key等自定义逻辑对模板渲染对象进行精细修改调节
调用SXTemplatePlayer对象的getPlayerView方法来获取和播放器绑定的UIView对象,并将其加载到界面上用于显示预览画面
设置SXTemplatePlayer对象的delegate参数来设置播放状态监听委托对象
调用SXTemplatePlayer对象start,seek,pause,stop等方法对播放状态进行控制
SXTemplate *sxTemplate = [[SXTemplate alloc] init:@"Your template path" type:SXTemplateUsagePreview];
[sxTemplate setReplaceableFilePaths:@[@"asset path"]];
SXTemplatePlayer *player = [[SXTemplatePlayer alloc] initWithTemplate:sxTemplate audioPath:@"audio path"];
UIView *playView = [player getPlayerView];
int videoWidth = [sxTemplate mainCompWidth];
int videoHeight = [sxTemplate mainCompHeight];
CGFloat scale = videoHeight / self.view.bounds.size.height;
playView.bounds = CGRectMake(0, 0, videoWidth / scale, self.view.bounds.size.height);
playView.center = CGPointMake(self.view.bounds.size.width/2, self.view.bounds.size.height / 2);
[self.view addSubview:playView];
player.delegate = self;
[sxTemplate commit];
[player start];
SXTemplatePlayer只是实时预览,不可以直接生成视频文件。
但是SXTemplatePlayer提供录制方法,可以录制当前屏幕上正在渲染的画面,通过delegate回调获取结果。
-(void)startRecord;// 开始录制当前预览的界面
-(void)cancelRecord;//取消本次录制
-(void)stopRecord;// 结束录制当前预览的界面
-(BOOL)isRecord;// 是否正在录制
SXTemplate初始化时type类型为预览 SXTemplateUsagePreview
注意方法调用的顺序,顺序不对可能会导致异常
替换素材提供的图片路径需要是本地图片路径
-(void) setReplaceableFilePaths:(NSArray<NSString*>*) filePaths;
如果从相册里选择的素材需要进行裁剪,可以参考demo,SDK不提供素材预处理操作
对于预览方法来说,普通模板和动态模板调用方法一致
在 SXTemplatePlayer 释放前调用 stop 方法释放资源, stop 后需要重新调用 commit 方法,如果不是释放 player 暂停建议使用 pause 方法。
由于屏幕刷新频率一秒60次,建议帧速率设置在15, 20, 30, 60中的一种,否则预览容易产生误差