更新时间 : 2021-07-12 13:48:36
SXEditManager管理一个完整剪辑过程中的合成,以及不在单独合成中的所有资源,包括组,轨道,特效等。
每个实例对象只管理自己生成的资源,建议同一时间不要创建多个,会占用较多内存空间。
初始化 SXEditManager需要用SXEditOptions对象来初始化,options中需要设置相应的参数。
//example:
SXEditOptions *options = [[SXEditOptions alloc] init];
//所需验证的license,license无效时所有操作都不会生效,请检查控制台打印
options.license = @"Your License";
//定义渲染宽度
options.width = 720;
//定义渲染高度
options.height = 1280;
//设置一个全局默认字体
options.fontFile = @“default font path”;
/**
* 初始化编辑管理类
* @param options 初始化参数,初始化时生效,后期修改无效
*/
SXEditManager *editManager = [[SXEditManager alloc] initWithOptions:options];
展示编辑视图
//example:
//获取editManager中渲染画面的视图
UIView *playView = [_editManager getPlayerView];
int videoWidth = _editManager.options.width;
int videoHeight = _editManager.options.height;
_playerScale = 1 / [SXUICalculateUtil getScale:CGSizeMake(videoWidth, videoHeight) maxSize:_videoContentView.bounds.size];
playView.bounds = CGRectMake(0, 0, videoWidth * _playerScale, videoHeight * _playerScale);
playView.center = CGPointMake(_videoContentView.bounds.size.width / 2, _videoContentView.bounds.size.height / 2);
[_videoContentView addSubview:playView];
//开始预览当前剪辑中的内容,在回调获取播放进度
[_editManager start];
SXEditManager 实现了 SXTrackDataDelegate 和 SXCompositeDelegate,包含了对组和轨道的管理和操作与SXComposite 相同。
组由用户创建,组内可以添加不同类型的轨道。
创建轨道,轨道需要加入组中才可以看到效果。
//example:
//创建媒体轨道
SXMediaTrack *track = [_editManager createMediaTrack:filePath];
//如果创建成功则返回值不为空,图片默认时长为3秒,视频及gif素材为实际时长
if (track) {
SXTrackGroup *group = [_editManager addNewGroup];
//在轨道组中添加track
if ([group addTrack:track startTime:0]) {
[track fitToEditContext:NO margin:0];
}
}
预览
//播放
[_editManager start];
//暂停
[_editManager pause];
//seek
//如果当前帧内容有更新,需要调用seek方法到当前帧已达到刷新当前画面的目的
[_editManager seek:seconds];
渲染
//开始渲染当前管理类中的内容,在回调中可以获得进度以及渲染结果
[_editManager startRender];
释放
//释放前需要调用stop方法来释放部分资源
[_editManager stop];
SXEditManager管理一个完整剪辑过程中的合成,以及不在单独合成中的所有资源,包括组,轨道,特效等。
每个实例对象只管理自己生成的资源,建议同一时间不要创建多个,会占用较多内存空间。
初始化 SXEditManager需要用SXEditOptions对象来初始化,options中需要设置相应的参数。
//example:
SXEditOptions *options = [[SXEditOptions alloc] init];
//所需验证的license,license无效时所有操作都不会生效,请检查控制台打印
options.license = @"Your License";
//定义渲染宽度
options.width = 720;
//定义渲染高度
options.height = 1280;
//设置一个全局默认字体
options.fontFile = @“default font path”;
/**
* 初始化编辑管理类
* @param options 初始化参数,初始化时生效,后期修改无效
*/
SXEditManager *editManager = [[SXEditManager alloc] initWithOptions:options];
展示编辑视图
//example:
//获取editManager中渲染画面的视图
UIView *playView = [_editManager getPlayerView];
int videoWidth = _editManager.options.width;
int videoHeight = _editManager.options.height;
_playerScale = 1 / [SXUICalculateUtil getScale:CGSizeMake(videoWidth, videoHeight) maxSize:_videoContentView.bounds.size];
playView.bounds = CGRectMake(0, 0, videoWidth * _playerScale, videoHeight * _playerScale);
playView.center = CGPointMake(_videoContentView.bounds.size.width / 2, _videoContentView.bounds.size.height / 2);
[_videoContentView addSubview:playView];
//开始预览当前剪辑中的内容,在回调获取播放进度
[_editManager start];
SXEditManager 实现了 SXTrackDataDelegate 和 SXCompositeDelegate,包含了对组和轨道的管理和操作与SXComposite 相同。
组由用户创建,组内可以添加不同类型的轨道。
创建轨道,轨道需要加入组中才可以看到效果。
//example:
//创建媒体轨道
SXMediaTrack *track = [_editManager createMediaTrack:filePath];
//如果创建成功则返回值不为空,图片默认时长为3秒,视频及gif素材为实际时长
if (track) {
SXTrackGroup *group = [_editManager addNewGroup];
//在轨道组中添加track
if ([group addTrack:track startTime:0]) {
[track fitToEditContext:NO margin:0];
}
}
预览
//播放
[_editManager start];
//暂停
[_editManager pause];
//seek
//如果当前帧内容有更新,需要调用seek方法到当前帧已达到刷新当前画面的目的
[_editManager seek:seconds];
渲染
//开始渲染当前管理类中的内容,在回调中可以获得进度以及渲染结果
[_editManager startRender];
释放
//释放前需要调用stop方法来释放部分资源
[_editManager stop];