更新时间 : 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中的一种,否则预览容易产生误差