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

{user.username}

ID: {user.id}

剪辑 SDK 文档

  • 云渲染

    • Demo下载
    • SDK
    • 开发指南
    • AI API 文档
    • 开发者 API 文档
    • 控制台指南
    • 快速入门
    • 产品简介
  • 模板SDK

    • 用户常见问题
    • Demo 下载
    • 开发指南
    • 服务端 SDK
    • iOS SDK
    • 安卓端 SDK
    • 产品简介
  • 剪辑SDK

    • Demo下载
    • SDK
    • 开发指南
    • 产品简介
  • 模板制作教程

    • 模板制作进阶教程
    • 测试模板素材案例下载
    • 常见模板制作案例
    • 模板制作教程
    • 模板制作工具下载
    • 入门指南
  • 剪辑制作教程

    • 剪辑特效导出教程
    • 剪辑特效测试素材
    • 剪辑特效制作工具下载
    • 入门指南
首页 > SDK > iOS SDK > 剪辑管理类—SXEditManager

剪辑管理类—SXEditManager

更新时间 : 2021-07-12 13:48:36

SXEditManager

SXEditManager管理一个完整剪辑过程中的合成,以及不在单独合成中的所有资源,包括组,轨道,特效等。

每个实例对象只管理自己生成的资源,建议同一时间不要创建多个,会占用较多内存空间。

  1. 初始化 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];
  2. 展示编辑视图

    //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];
  3. SXEditManager 实现了 SXTrackDataDelegate 和 SXCompositeDelegate,包含了对组和轨道的管理和操作与SXComposite 相同。

  4. 组由用户创建,组内可以添加不同类型的轨道。

  5. 创建轨道,轨道需要加入组中才可以看到效果。

    //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];
        }
    }
  6. 预览

    //播放
    [_editManager start];
    //暂停
    [_editManager pause];
    //seek 
    //如果当前帧内容有更新,需要调用seek方法到当前帧已达到刷新当前画面的目的
    [_editManager seek:seconds];
  7. 渲染

    //开始渲染当前管理类中的内容,在回调中可以获得进度以及渲染结果
    [_editManager startRender];
  8. 释放

    //释放前需要调用stop方法来释放部分资源
    [_editManager stop];
首页 > SDK > iOS SDK > 剪辑管理类—SXEditManager
剪辑管理类—SXEditManager
更新时间 : 2021-07-12 13:48:36
  • 云渲染
    • Demo下载
    • SDK
    • 开发指南
    • AI API 文档
    • 开发者 API 文档
    • 控制台指南
    • 快速入门
    • 产品简介
  • 模板SDK
    • 用户常见问题
    • Demo 下载
    • 开发指南
    • 服务端 SDK
    • iOS SDK
    • 安卓端 SDK
    • 产品简介
  • 剪辑SDK
    • Demo下载
    • SDK
    • 开发指南
    • 产品简介
  • 模板制作教程
    • 模板制作进阶教程
    • 测试模板素材案例下载
    • 常见模板制作案例
    • 模板制作教程
    • 模板制作工具下载
    • 入门指南
  • 剪辑制作教程
    • 剪辑特效导出教程
    • 剪辑特效测试素材
    • 剪辑特效制作工具下载
    • 入门指南

SXEditManager

SXEditManager管理一个完整剪辑过程中的合成,以及不在单独合成中的所有资源,包括组,轨道,特效等。

每个实例对象只管理自己生成的资源,建议同一时间不要创建多个,会占用较多内存空间。

  1. 初始化 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];
  2. 展示编辑视图

    //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];
  3. SXEditManager 实现了 SXTrackDataDelegate 和 SXCompositeDelegate,包含了对组和轨道的管理和操作与SXComposite 相同。

  4. 组由用户创建,组内可以添加不同类型的轨道。

  5. 创建轨道,轨道需要加入组中才可以看到效果。

    //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];
        }
    }
  6. 预览

    //播放
    [_editManager start];
    //暂停
    [_editManager pause];
    //seek 
    //如果当前帧内容有更新,需要调用seek方法到当前帧已达到刷新当前画面的目的
    [_editManager seek:seconds];
  7. 渲染

    //开始渲染当前管理类中的内容,在回调中可以获得进度以及渲染结果
    [_editManager startRender];
  8. 释放

    //释放前需要调用stop方法来释放部分资源
    [_editManager stop];