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

{user.username}

ID: {user.id}

剪辑 SDK 文档

  • 云渲染

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

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

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

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

    • 剪辑特效导出教程
    • 剪辑特效测试素材
    • 剪辑特效制作工具下载
    • 入门指南
首页 > SDK > iOS SDK > iOS API 参考 > SXComposite API

SXComposite API

更新时间 : 2021-11-19 13:53:23

//
//  SXComposite.h
//  SXVideoEnging
//
//  Created by Yin Xie on 2021/1/6.
//  Copyright © 2021 Zhiqiang Li. All rights reserved.
//

import <Foundation/Foundation.h>
import "SXTrack.h"
import "SXTrackGroup.h"
import "SXResource.h"
NS_ASSUME_NONNULL_BEGIN

@class SXComposite;
@protocol SXTrackDataDelegate <NSObject>

/**
* 通过id获取对应的组,id可通过类方法uuid获取
* @param groupId 组的uuid
* @return 组的实例对象,不存在对应的组时返回nullptr
*/
- (SXTrackGroup *)group:(NSString *)groupId;

/**
* 在最后方追加一个新组
* @return 新组的实例对象
*/
- (SXTrackGroup *)addNewGroup;

/**
* 组是顺序存储的,因此可以在index所在的位置插入一个组
* @param index 位置的索引,index超出组个数时等价于addNewGroup
* @return 新组的实例对象
*/
- (SXTrackGroup *)insertNewGroupAt:(int)index;

/**
* 通过id删除组,如果组内存在轨道则会移除所有轨道,但不会删除轨道
* @param groupId 组的唯一id
*/
- (void)deleteGroup:(NSString *)groupId;

/**
* 移动一个组到指定的位置
* @param groupId 组的唯一id
* @param index 组的顺序索引,从0开始(不包含主轨道和当前轨道)
*/
- (void)moveGroup:(NSString *)groupId toIndex:(int)index;

/**
* 获取所有的组
* @return 顺序存储的所有组
*/
- (NSArray *)groups;

/**
* 创建媒体轨道,接受视频和图片素材
* @param resource 资源对象
* @return 媒体轨道
*/
- (SXMediaTrack *)createMediaTrack:(SXResource *)resource;

/**
* 创建贴纸轨道
* @param resource 资源对象
* @param duration  持续时长
* @return 贴纸轨道
*/
- (SXStickerTrack *)createStickerTrack:(SXResource *)resource duration:(double)duration;

/**
* 创建文字轨道
* @param duration 持续时长
* @return 文字轨道
* */
- (SXTextTrack *)createTextTrack:(double)duration;

/**
* 创建音频轨道
* @param resource 资源对象
* @return 音频轨道
* */
- (SXAudioTrack *)createAudioTrack:(SXResource *)resource;

/**
* 通过轨道id删除一个轨道, 该track将被释放,后续不能再使用
* @param trackId 轨道id
*/
- (void)deleteTrack:(NSString *)trackId;

/**
* 通过轨道id复制一个新的轨道
* @param trackId 轨道id
* @return    新的轨道,复制失败时返回空指针
*/
- (SXTrack *)cloneTrack:(NSString *)trackId;

/**
* 根据point查找画布中的track
*
* @param point 相对于画布左上角点的坐标
*
* @return 如果有相应的track返回对象,否则返回nil
*/
- (SXTrack *)hitPoint:(CGPoint)point;

/**
* 根据point查找画布中相应类型的track
*
* @param point 相对于画布左上角点的坐标
* @param type 需要查找的track类型
*
* @return 如果有相应的track返回对象,否则返回nil
*/
- (SXTrack *)hitPoint:(CGPoint)point type:(SXTrackType)type;
@end

@protocol SXCompositeDelegate <NSObject>
/**
* 合成宽度
* @return 宽度
*/
- (int)width;
/**
* 合成高度
* @return 高度
*/
- (int)height;
/**
* 合成帧率
* @return 帧率
*/
- (int)fps;
/**
* 合成帧数
* @return 帧数
*/
- (int64_t)frames;
/**
* 合成时长
* @return 时长单位为秒
*/
- (double)duration;

/**
* 获取合成中轨道的最大结束时间
* @param excludeAudio 是否排除音频时长
* @return 轨道的最大结束时间
*/
- (double)contentMaxTime:(bool)excludeAudio;

/**
* 设置合成时长
* @param frame 帧数
*/
- (void)setDurationInFrame:(int64_t)frame;

/**
* 设置合成时长,时长会转换为对应的帧数保存
* @param seconds 时长,单位为秒
*/
- (void)setDuration:(double)seconds;

@end

@interface SXComposite : NSObject <SXCompositeDelegate, SXTrackDataDelegate, SXEditAttributeDelegate>

/**
* 获取当前composite的ID
* @return ID
*/
- (NSString *)getCompositeId;

@end

NS_ASSUME_NONNULL_END
首页 > SDK > iOS SDK > iOS API 参考 > SXComposite API
SXComposite API
更新时间 : 2021-11-19 13:53:23
  • 云渲染
    • Demo下载
    • SDK
    • 开发指南
    • AI API 文档
    • 开发者 API 文档
    • 控制台指南
    • 快速入门
    • 产品简介
  • 模板SDK
    • 用户常见问题
    • Demo 下载
    • 开发指南
    • 服务端 SDK
    • iOS SDK
    • 安卓端 SDK
    • 产品简介
  • 剪辑SDK
    • Demo下载
    • SDK
    • 开发指南
    • 产品简介
  • 模板制作教程
    • 模板制作进阶教程
    • 测试模板素材案例下载
    • 常见模板制作案例
    • 模板制作教程
    • 模板制作工具下载
    • 入门指南
  • 剪辑制作教程
    • 剪辑特效导出教程
    • 剪辑特效测试素材
    • 剪辑特效制作工具下载
    • 入门指南
//
//  SXComposite.h
//  SXVideoEnging
//
//  Created by Yin Xie on 2021/1/6.
//  Copyright © 2021 Zhiqiang Li. All rights reserved.
//

import <Foundation/Foundation.h>
import "SXTrack.h"
import "SXTrackGroup.h"
import "SXResource.h"
NS_ASSUME_NONNULL_BEGIN

@class SXComposite;
@protocol SXTrackDataDelegate <NSObject>

/**
* 通过id获取对应的组,id可通过类方法uuid获取
* @param groupId 组的uuid
* @return 组的实例对象,不存在对应的组时返回nullptr
*/
- (SXTrackGroup *)group:(NSString *)groupId;

/**
* 在最后方追加一个新组
* @return 新组的实例对象
*/
- (SXTrackGroup *)addNewGroup;

/**
* 组是顺序存储的,因此可以在index所在的位置插入一个组
* @param index 位置的索引,index超出组个数时等价于addNewGroup
* @return 新组的实例对象
*/
- (SXTrackGroup *)insertNewGroupAt:(int)index;

/**
* 通过id删除组,如果组内存在轨道则会移除所有轨道,但不会删除轨道
* @param groupId 组的唯一id
*/
- (void)deleteGroup:(NSString *)groupId;

/**
* 移动一个组到指定的位置
* @param groupId 组的唯一id
* @param index 组的顺序索引,从0开始(不包含主轨道和当前轨道)
*/
- (void)moveGroup:(NSString *)groupId toIndex:(int)index;

/**
* 获取所有的组
* @return 顺序存储的所有组
*/
- (NSArray *)groups;

/**
* 创建媒体轨道,接受视频和图片素材
* @param resource 资源对象
* @return 媒体轨道
*/
- (SXMediaTrack *)createMediaTrack:(SXResource *)resource;

/**
* 创建贴纸轨道
* @param resource 资源对象
* @param duration  持续时长
* @return 贴纸轨道
*/
- (SXStickerTrack *)createStickerTrack:(SXResource *)resource duration:(double)duration;

/**
* 创建文字轨道
* @param duration 持续时长
* @return 文字轨道
* */
- (SXTextTrack *)createTextTrack:(double)duration;

/**
* 创建音频轨道
* @param resource 资源对象
* @return 音频轨道
* */
- (SXAudioTrack *)createAudioTrack:(SXResource *)resource;

/**
* 通过轨道id删除一个轨道, 该track将被释放,后续不能再使用
* @param trackId 轨道id
*/
- (void)deleteTrack:(NSString *)trackId;

/**
* 通过轨道id复制一个新的轨道
* @param trackId 轨道id
* @return    新的轨道,复制失败时返回空指针
*/
- (SXTrack *)cloneTrack:(NSString *)trackId;

/**
* 根据point查找画布中的track
*
* @param point 相对于画布左上角点的坐标
*
* @return 如果有相应的track返回对象,否则返回nil
*/
- (SXTrack *)hitPoint:(CGPoint)point;

/**
* 根据point查找画布中相应类型的track
*
* @param point 相对于画布左上角点的坐标
* @param type 需要查找的track类型
*
* @return 如果有相应的track返回对象,否则返回nil
*/
- (SXTrack *)hitPoint:(CGPoint)point type:(SXTrackType)type;
@end

@protocol SXCompositeDelegate <NSObject>
/**
* 合成宽度
* @return 宽度
*/
- (int)width;
/**
* 合成高度
* @return 高度
*/
- (int)height;
/**
* 合成帧率
* @return 帧率
*/
- (int)fps;
/**
* 合成帧数
* @return 帧数
*/
- (int64_t)frames;
/**
* 合成时长
* @return 时长单位为秒
*/
- (double)duration;

/**
* 获取合成中轨道的最大结束时间
* @param excludeAudio 是否排除音频时长
* @return 轨道的最大结束时间
*/
- (double)contentMaxTime:(bool)excludeAudio;

/**
* 设置合成时长
* @param frame 帧数
*/
- (void)setDurationInFrame:(int64_t)frame;

/**
* 设置合成时长,时长会转换为对应的帧数保存
* @param seconds 时长,单位为秒
*/
- (void)setDuration:(double)seconds;

@end

@interface SXComposite : NSObject <SXCompositeDelegate, SXTrackDataDelegate, SXEditAttributeDelegate>

/**
* 获取当前composite的ID
* @return ID
*/
- (NSString *)getCompositeId;

@end

NS_ASSUME_NONNULL_END