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

{user.username}

ID: {user.id}

剪辑 SDK 文档

  • 云渲染

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

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

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

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

    • 剪辑特效导出教程
    • 剪辑特效测试素材
    • 剪辑特效制作工具下载
    • 入门指南
首页 > SDK > Android SDK > 剪辑合成类

剪辑合成类

更新时间 : 2021-07-09 15:54:38

SXComposite

SXComposite 管理一个合成中的所有资源,包括组,轨道等。

  1. 初始化

    需要通过SXEditManager中的createComposite方法。

    /**
    * 创建合成
    *
    * @param width, 宽, px
    * @param height, 高, px
    * @param frames, 总帧数
    * @return 合成对象,创建失败返回null
    **/
    public SXComposite createComposite(int width, int height, long frames)
  2. 获取合成属性

    一个合成拥有自己的一些属性,如高度,宽度,帧速率,时间等等, 下面的方法可以获取这些属性的值。

/**

/**

/**

/**

/**

  1. 管理组和轨道

    合成中包含自己的组和轨道,提供了相关的管理方法。

    注意包含在合成中的组和轨道无法通过 SXEditManager 获取,只能通过合成获取。

    
    /**
    * 通过id获取对应的组
    * @param groupId 组的uuid
    * @return 组的实例对象,不存在对应的组时返回null
    */
    public SXTrackGroup getGroup(String groupId)

/**

public SXTrackGroup addNewGroup() /**

public SXTrackGroup addNewGroupAt(int index)

/**

/**

/**

/**

/**

/**

/**

/**

/**

/**

/**

  1. 用合成初始化 SXMediaTrack

    一个合成中可以包含多个组,每个组中可以包含多个轨道,使用合成初始化一个SXMediaTrack可以在多个轨道上完成SXMediaTrack的特效和转场, demo中的主轨道就是这样实现的。

    SXComposite mainComp = editManager.createComposite(editManager.getSize().getWidth(), editManager.getSize().getHeight(), 1);
    SXResource mainCompSource = new SXResource(mainComp);
    SXMediaTrack mainCompTrack = editManager.createMediaTrackWithResource(mainCompSource);
  2. 修改时间

    每个合成拥有自己的 duration,所以在修改包含合成的媒体轨道的 duration 时还需要同时修改合成的 duration。

    mainComp.setDuration(mainComp.getContentMaxTime(true));
    mainCompTrack.setDuration(mainComp.getDuration());
首页 > SDK > Android SDK > 剪辑合成类
剪辑合成类
更新时间 : 2021-07-09 15:54:38
  • 云渲染
    • Demo下载
    • SDK
    • 开发指南
    • AI API 文档
    • 开发者 API 文档
    • 控制台指南
    • 快速入门
    • 产品简介
  • 模板SDK
    • 用户常见问题
    • Demo 下载
    • 开发指南
    • 服务端 SDK
    • iOS SDK
    • 安卓端 SDK
    • 产品简介
  • 剪辑SDK
    • Demo下载
    • SDK
    • 开发指南
    • 产品简介
  • 模板制作教程
    • 模板制作进阶教程
    • 测试模板素材案例下载
    • 常见模板制作案例
    • 模板制作教程
    • 模板制作工具下载
    • 入门指南
  • 剪辑制作教程
    • 剪辑特效导出教程
    • 剪辑特效测试素材
    • 剪辑特效制作工具下载
    • 入门指南

SXComposite

SXComposite 管理一个合成中的所有资源,包括组,轨道等。

  1. 初始化

    需要通过SXEditManager中的createComposite方法。

    /**
    * 创建合成
    *
    * @param width, 宽, px
    * @param height, 高, px
    * @param frames, 总帧数
    * @return 合成对象,创建失败返回null
    **/
    public SXComposite createComposite(int width, int height, long frames)
  2. 获取合成属性

    一个合成拥有自己的一些属性,如高度,宽度,帧速率,时间等等, 下面的方法可以获取这些属性的值。

/**

  • 获取合成 Id
  • */ public String getCompositeId()

    /**

  • 获取合成尺寸 */ public Size getSize()

/**

  • 获取合成帧率 */ public double getFps()

/**

  • 获取合成时长,时长单位为秒 */ public double getDuration()

/**

  • 获取合成帧数 */ public long getFrames()

/**

  • 获取合成中轨道的最大结束时间
  • @param excludeAudio 是否排除音频时长
  • @return 轨道的最大结束时间 */ public double getContentMaxTime(boolean excludeAudio)
  1. 管理组和轨道

    合成中包含自己的组和轨道,提供了相关的管理方法。

    注意包含在合成中的组和轨道无法通过 SXEditManager 获取,只能通过合成获取。

    
    /**
    * 通过id获取对应的组
    * @param groupId 组的uuid
    * @return 组的实例对象,不存在对应的组时返回null
    */
    public SXTrackGroup getGroup(String groupId)

/**

  • 组是顺序存储的,在末尾追加一个组
  • @return 新组的实例对象 */

public SXTrackGroup addNewGroup() /**

  • 组是顺序存储的,因此可以在index所在的位置插入一个组
  • @param index 位置的索引,index超出数组个数或小于0时添加到末尾
  • @return 新组的实例对象 */

public SXTrackGroup addNewGroupAt(int index)

/**

  • 通过id删除组,如果组内存在轨道则会移除所有轨道,但不会删除轨道
  • @param groupId 组 id */ public void deleteGroup(String groupId)

/**

  • 移动一个组到指定的位置
  • @param groupId 组的id
  • @param index 组新的位置
  • @return 组查找失败或索引越界返回false */ public void moveGroupTo(String groupId, int index)

/**

  • 获取所有的组,不包含主轨道
  • @return 顺序存储的所有组 */ public SXTrackGroup[] groups()

/**

  • 创建媒体轨道,接受视频和图片素材
  • 图片轨道时长默认时长为3秒,其他素材使用素材自身时长
  • @param sourcePath 资源路径
  • @return 失败返回null */ public SXMediaTrack createMediaTrack(String sourcePath)

/**

  • 创建贴纸轨道
  • 贴纸轨道时长默认使用贴纸包自身时长
  • @param sourcePath 资源
  • @param duration 时长, 单位: 秒
  • @return 失败返回nullptr */ public SXStickerTrack createStickerTrack(String sourcePath, double duration)

/**

  • 创建文字轨道
  • @param duration 持续时长,文字轨道必须指定时长, 单位: 秒
  • @return 失败返回nullptr */ public SXTextTrack createTextTrack(double duration)

/**

  • 创建音频轨道
  • @note 音频轨道时长默认使用音频自身时长
  • @param sourcePath 音频资源路径
  • @param duration 时长, 单位: 秒, 传 0 表示使用资源自身的时长
  • @return 失败返回nullptr */ public SXAudioTrack createAudioTrack(String sourcePath, double duration)

/**

  • 通过轨道id删除一个轨道
  • @param trackId 轨道id
  • @note 建议在删除前先从组中移除此轨道 */ public void deleteTrack(String trackId)

/**

  • 通过轨道id复制一个新的轨道
  • @param trackId 轨道id
  • @return 新的轨道,复制失败时返回 null */ public SXTrack cloneTrack(String trackId)

/**

  • 通过轨道id 获取轨道
  • @param trackId 轨道id
  • @return 轨道,失败时返回 null */ public SXTrack getTrack(String trackId)

    /**

  • 根据point查找画布中的track
  • @param point 相对于画布左上角点的坐标
  • @return 如果有相应的track返回对象,否则返回null */ public SXTrack hitTest(PointF point)

/**

  • 根据point查找画布中相应类型的track
  • @param point 相对于画布左上角点的坐标
  • @param type 需要查找的track类型
  • @return 如果有相应的track返回对象,否则返回null */ public SXTrack hitTest(PointF point, int type)
  1. 用合成初始化 SXMediaTrack

    一个合成中可以包含多个组,每个组中可以包含多个轨道,使用合成初始化一个SXMediaTrack可以在多个轨道上完成SXMediaTrack的特效和转场, demo中的主轨道就是这样实现的。

    SXComposite mainComp = editManager.createComposite(editManager.getSize().getWidth(), editManager.getSize().getHeight(), 1);
    SXResource mainCompSource = new SXResource(mainComp);
    SXMediaTrack mainCompTrack = editManager.createMediaTrackWithResource(mainCompSource);
  2. 修改时间

    每个合成拥有自己的 duration,所以在修改包含合成的媒体轨道的 duration 时还需要同时修改合成的 duration。

    mainComp.setDuration(mainComp.getContentMaxTime(true));
    mainCompTrack.setDuration(mainComp.getDuration());