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

{user.username}

ID: {user.id}

剪辑 SDK 文档

SDK > iOS SDK > iOS API 参考 > SXEditManager API

SXEditManager API

更新时间 : 2021-07-21 14:30:45

//
//  SXEditManager.h
//  SXVideoEnging
//
//  Created by Yin Xie on 2020/3/31.
//  Copyright © 2020 Zhiqiang Li. All rights reserved.
//

**import** `<Foundation/Foundation.h>`
**import** "SXEditOptions.h"
**import** "SXTrack.h"
**import** "SXTrackGroup.h"
**import** "SXComposite.h"
NS_ASSUME_NONNULL_BEGIN

/**
* SXEditManager委托
*/
@protocol SXEditManagerDelegate <NSObject>

/**
* 播放进度更新
* @param frameIndex 当前播放的帧序列号
*/
- (void)playFrameIndex:(NSInteger)frameIndex;

/**
* 渲染开始
*/
-(void)renderStarted;

/**
* 渲染结束
* @param tempUrl 结果文件路径
*/
-(void)renderFinished:(NSURL *)tempUrl;

/**
* 渲染被取消
*/
-(void)renderCancelled;

/**
渲染失败

@param error 错误信息
@warning 当erro中userinfo包含request, 且为"/render/charge/cpt/confirm", 请记录路径和订单流水号(必须对应),以便稍后调用decodeFile重新尝试输出视频文件
          渲染回调的文件如果不是直接再次导出,请注意保存该文件,不然可能会被覆盖
*/
-(void)renderFailed:(NSError *)error;
/**
* 渲染进度更新
* @param progress 渲染进度,0~1
*/
-(void)renderProgress:(float) progress;

@end

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

/**
* SXEditManager委托
*/
@property (nonatomic, weak) id<SXEditManagerDelegate> delegate;

/**
* 获取和设置当前渲染输出的文件路径
* @warning 完整的视频路径,需要包含文件名以及后缀,该路径若已有文件会被删除重写
*/
@property (nonatomic, copy) NSString *outputPath;

/**
* 初始化编辑管理类
* @param options 初始化参数,初始化时生效,后期修改无效
*/
- (instancetype)initWithOptions:(SXEditOptions *)options;

/**
* 初始化编辑管理类
* @param options 初始化参数,初始化时生效,后期修改无效
* @param options 初始化参数,从 json 导入剪辑信息
*/
- (instancetype)initWithOptions:(SXEditOptions *)options jsonString:(NSString *)jsonString;

/**
* SDK内部使用帧数计算,消除时间转化中的误差
* @return 去掉误差后的时间
*/
- (double)removeTimeError:(double)time;

/**
* 设置背景颜色, 默认黑色
* @param red [0-1]
* @param green [0-1]
* @param blue [0-1]
* */
- (void)setBackgroundColorRed:(CGFloat)red green:(CGFloat)green blue:(CGFloat)blue;

/**
* 重设 edit 尺寸
*
* @param size 尺寸
* @return 是否成功
*/
- (BOOL)resetEditSize:(CGSize)size;

/**
* 创建一个合成
* @param width 宽度
* @param height 高度
* @param frame 时长
* @return 合成对象,失败返回空对象
*/
- (SXComposite *)createCompositeWidth:(int)width height:(int)height frame:(int64_t)frame;

/**
* 创建大小与edit manager大小帧率一致的合成
* @note 此合成大小保持与edit manager大小一致
* @param frame 时长
* @return 合成对象,失败返回空对象
*/
- (SXComposite *)createCompositeFrame:(int64_t)frame;

/**
* 删除合成
* @param compositeId 合成id
*/
- (void)deleteComposite:(NSString *)compositeId;

/**
* 生成剪辑信息到 json
*
* @return json string
*/
- (NSString *)toJson;

**pragma mark** - Play and Render
/**
* 开始预览
* @return 是否成功
*/
- (BOOL)start;

/**
* 暂停预览
* @return 是否成功
*/
- (BOOL)pause;

/**
* 停止预览,释放资源
* @warning 调用时需要确保其他方法已经调用结束,否则资源释放后其他方法继续执行可能导致闪退
* @return 是否成功
*/
- (BOOL)stop;

/**
* 获取播放状态
* @return 是否正在播放
*/
- (BOOL)isPlay;

/**
* 开始渲染
* @return 是否开始成功
*/
- (BOOL)startRender;

/**
* 取消渲染
*/
- (void)cancelRender;

/**
* 设置时间进度
* @param second 新的时间进度,秒为单位
* @return 是否设置成功
*/
- (BOOL)seek:(float)second;

/**
* 获取播放器所使用的视图对象
* @return UIView视图对象,获取到之后可以添加显示到界面上
*/
- (UIView *)getPlayerView;

/**
录制文件导出失败后重试接口,参数由录制回调的错误中获得
@param filePath 加密文件路径, 对应key - filePath
@param orderSN 订单流水号, 对应key - orderSN
@param featureString 订单功能, 对应key - featureString
@param outputPath 解密文件输出路径
@param completeHandler 完成回调
@warning 一个订单对应一个加密文件,参数不要修改,不要用来解密其他文件,可能造成文件错误且扣费成功
解压完成后不会删除原文件
*/
+ (void)decodeFile:(NSString *)filePath
           orderSN:(NSString *)orderSN
     featureString:(NSString *)featureString
        outputPath:(NSString *)outputPath
   completeHandler:(void (^)(NSError *))completeHandler;

@end

NS_ASSUME_NONNULL_END