扫一扫咨询方案
English
中文
English
登录/注册

{user.username}

ID: {user.id}

剪辑 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());