Interface Class Name | Description |
ITAVDraftManager | Draft box operation manager class. |
/// Set draft storage path. If not set, the SDK default path is used/// - Parameter storageDir: Draft storage path+ (void)setDraftStorageDir:(NSString *)storageDir;
/// Generate draft to the preset directory. Resources used by the draft (video, image, PIP, BGM, stickers, filters, etc.) will be cached in the draft directory and deleted when the draft is removed- (BOOL)generateDraft;/// Generate draft to the preset directory without caching resources. Users manage resources themselves- (BOOL)generateDraftNoCacheResources;
/// Get draft list+ (NSArray<TAVDraft *> *)readDraftList;
/// Get current draft- (TAVDraft *)getCurrentDraft;
/// Delete the specified draft+ (void)deleteDraft:(TAVDraft *)draft;/// Delete all drafts+ (void)deleteAllDrafts;
/// Load draft/// - Parameters:/// - draft: Draft object/// - shouldApply: Whether to immediately apply draft effects- (void)loadDraft:(TAVDraft *)draft onDraftLoadingFinished:(TAVDraftLoadingCallBack)callback;/// Loading callbacktypedef void(^TAVDraftLoadingCallBack)(TAVDraftLoadingResult * draftLoadingResult);@interface TAVDraftLoadingResult : NSObject@property (nonatomic, strong) NSMutableArray<TAVComponentLoadingError *> *errors;- (BOOL)isSuccess;- (NSArray<TAVComponentLoadingError *> *)getErrors;@end
Error Codes | Constant Name | Description |
100 | TAVDraftLoadingErrorSDKInternal | SDK internal error. |
101 | TAVDraftLoadingErrorResourceNotFound | Resource not found. |
102 | TAVDraftLoadingErrorSDKInternalResourceInvalid | Invalid resource format. |
-1 | TAVDraftLoadingErrorUnknown | Unknown error. |
/// Reset / Start recording draft- (void)resetDraftRecord;
/// Commit a draft snapshot/// - Parameter tag: Tag value/// - return: Whether the commit was successful- (BOOL)commit:(NSString *)tag;
/// Whether undo is currently available- (BOOL)canUndo;/// Whether redo is currently available- (BOOL)canRedo;
/// Undo / Rollback- (void)undo:(TAVDraftActionCallBack)callback;/// Redo / Forward- (void)redo:(TAVDraftActionCallBack)callback;
/// Add draft state listener/// - Parameter listener: Listener- (void)addDraftStateListener:(id<ITAVDraftStateListener>)listener;
/// Remove draft state listener/// - Parameter listener: Listener- (void)removeDraftStateListener:(id<ITAVDraftStateListener>)listener;
@protocol ITAVDraftStateListener <NSObject>/// Undo availability state changed- (void)onUndoStateChange:(BOOL)canUndo;/// Redo availability state changed- (void)onRedoStateChange:(BOOL)canRedo;@end
typedef void(^TAVDraftActionCallBack)(NSString *tag,TAVDiffResult *diffResult,NSString *errMsg);
id<ITAVDraftManager> manager = [self.editor getDraftManager];// Read draft listNSArray *draftList = [manager.class readDraftList];// Load draft[manager loadDraft:draft onDraftLoadingFinished:^(TAVDraftLoadingResult *draftLoadingResult) {NSLog(@"load draft reslut : %d",draftLoadingResult.isSuccess);}];// Commit current state[[self draftManager] commit:commitTag];// Set state listener[[self draftManager] addDraftStateListener:self];
피드백