tencent cloud

User Generated Short Video SDK

iOS

Download
포커스 모드
폰트 크기
마지막 업데이트 시간: 2026-05-11 17:46:59

Feature Overview

Through draft box interfaces, you can implement undo and redo during short video editing, and export to the draft box for subsequent editing.
TAVDraftManager provides draft management features, including setting the save directory, reading/deleting drafts, generating/loading drafts, and undo/redo operations.

Related Interface Classes

Interface Class Name
Description
ITAVDraftManager
Draft box operation manager class.

Core Methods

Set Draft Save Directory

/// Set draft storage path. If not set, the SDK default path is used
/// - Parameter storageDir: Draft storage path
+ (void)setDraftStorageDir:(NSString *)storageDir;

Generate Draft

/// 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;

Read Draft List

/// Get draft list
+ (NSArray<TAVDraft *> *)readDraftList;

Get Current Draft

/// Get current draft
- (TAVDraft *)getCurrentDraft;

Delete Draft

/// Delete the specified draft
+ (void)deleteDraft:(TAVDraft *)draft;

/// Delete all drafts
+ (void)deleteAllDrafts;

Load Draft

/// Load draft
/// - Parameters:
/// - draft: Draft object
/// - shouldApply: Whether to immediately apply draft effects
- (void)loadDraft:(TAVDraft *)draft onDraftLoadingFinished:(TAVDraftLoadingCallBack)callback;

/// Loading callback
typedef void(^TAVDraftLoadingCallBack)(TAVDraftLoadingResult * draftLoadingResult);

@interface TAVDraftLoadingResult : NSObject
@property (nonatomic, strong) NSMutableArray<TAVComponentLoadingError *> *errors;

- (BOOL)isSuccess;
- (NSArray<TAVComponentLoadingError *> *)getErrors;

@end

Error Codes

Error Codes
Constant Name
Description
100
TAVDraftLoadingErrorSDKInternal
SDK internal error.
101
TAVDraftLoadingErrorResourceNotFound
Resource not found.
102
TAVDraftLoadingErrorSDKInternalResourceInvalid
Invalid resource format.
-1
TAVDraftLoadingErrorUnknown
Unknown error.

Undo/Redo Operations

Reset / Start Draft Recording

/// Reset / Start recording draft
- (void)resetDraftRecord;

Commit Record Point

/// Commit a draft snapshot
/// - Parameter tag: Tag value
/// - return: Whether the commit was successful
- (BOOL)commit:(NSString *)tag;

State Check

/// Whether undo is currently available
- (BOOL)canUndo;

/// Whether redo is currently available
- (BOOL)canRedo;

Execute Operations

/// Undo / Rollback
- (void)undo:(TAVDraftActionCallBack)callback;

/// Redo / Forward
- (void)redo:(TAVDraftActionCallBack)callback;

State Monitoring

Set State Listener

/// Add draft state listener
/// - Parameter listener: Listener
- (void)addDraftStateListener:(id<ITAVDraftStateListener>)listener;

Set Component Change Listener

/// Remove draft state listener
/// - Parameter listener: Listener
- (void)removeDraftStateListener:(id<ITAVDraftStateListener>)listener;

Callback Interfaces

Draft State Listener

@protocol ITAVDraftStateListener <NSObject>
/// Undo availability state changed
- (void)onUndoStateChange:(BOOL)canUndo;
/// Redo availability state changed
- (void)onRedoStateChange:(BOOL)canRedo;
@end

Operation Callback

typedef void(^TAVDraftActionCallBack)(NSString *tag,TAVDiffResult *diffResult,NSString *errMsg);

Usage Example

id<ITAVDraftManager> manager = [self.editor getDraftManager];
// Read draft list
NSArray *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];




도움말 및 지원

문제 해결에 도움이 되었나요?

피드백