更新时间 : 2021-07-09 15:54:38
SXComposite 管理一个合成中的所有资源,包括组,轨道等。
初始化
需要通过SXEditManager
中的createComposite
方法。
/**
* 创建合成
*
* @param width, 宽, px
* @param height, 高, px
* @param frames, 总帧数
* @return 合成对象,创建失败返回null
**/
public SXComposite createComposite(int width, int height, long frames)
获取合成属性
一个合成拥有自己的一些属性,如高度,宽度,帧速率,时间等等, 下面的方法可以获取这些属性的值。
/**
*/ public String getCompositeId()
/**
/**
/**
/**
/**
管理组和轨道
合成中包含自己的组和轨道,提供了相关的管理方法。
注意包含在合成中的组和轨道无法通过 SXEditManager 获取,只能通过合成获取。
/**
* 通过id获取对应的组
* @param groupId 组的uuid
* @return 组的实例对象,不存在对应的组时返回null
*/
public SXTrackGroup getGroup(String groupId)
/**
public SXTrackGroup addNewGroup() /**
public SXTrackGroup addNewGroupAt(int index)
/**
/**
/**
/**
/**
/**
/**
/**
/**
/**
@return 轨道,失败时返回 null */ public SXTrack getTrack(String trackId)
/**
/**
用合成初始化 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);
修改时间
每个合成拥有自己的 duration,所以在修改包含合成的媒体轨道的 duration 时还需要同时修改合成的 duration。
mainComp.setDuration(mainComp.getContentMaxTime(true));
mainCompTrack.setDuration(mainComp.getDuration());
SXComposite 管理一个合成中的所有资源,包括组,轨道等。
初始化
需要通过SXEditManager
中的createComposite
方法。
/**
* 创建合成
*
* @param width, 宽, px
* @param height, 高, px
* @param frames, 总帧数
* @return 合成对象,创建失败返回null
**/
public SXComposite createComposite(int width, int height, long frames)
获取合成属性
一个合成拥有自己的一些属性,如高度,宽度,帧速率,时间等等, 下面的方法可以获取这些属性的值。
/**
*/ public String getCompositeId()
/**
/**
/**
/**
/**
管理组和轨道
合成中包含自己的组和轨道,提供了相关的管理方法。
注意包含在合成中的组和轨道无法通过 SXEditManager 获取,只能通过合成获取。
/**
* 通过id获取对应的组
* @param groupId 组的uuid
* @return 组的实例对象,不存在对应的组时返回null
*/
public SXTrackGroup getGroup(String groupId)
/**
public SXTrackGroup addNewGroup() /**
public SXTrackGroup addNewGroupAt(int index)
/**
/**
/**
/**
/**
/**
/**
/**
/**
/**
@return 轨道,失败时返回 null */ public SXTrack getTrack(String trackId)
/**
/**
用合成初始化 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);
修改时间
每个合成拥有自己的 duration,所以在修改包含合成的媒体轨道的 duration 时还需要同时修改合成的 duration。
mainComp.setDuration(mainComp.getContentMaxTime(true));
mainCompTrack.setDuration(mainComp.getDuration());