PLSTransitionMaker.h
3.97 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
//
// PLSTransitionMaker.h
// PLShortVideoKit
//
// Created by hxiongan on 2018/1/17.
// Copyright © 2018年 Pili Engineering, Qiniu Inc. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "PLSImageSetting.h"
#import "PLSTextSetting.h"
#import "PLSTransition.h"
#define INVALID_RESOURCEID (0)
@class PLSTransitionMaker;
@protocol PLSTransitionMakerDelegate
<
NSObject
>
@optional
/**
@abstract 预览结束会回调
@since v1.10.0
*/
- (void)transitionMakerPreviewEnd:(PLSTransitionMaker *)transitionMaker;
/**
@abstract 文字转视频成功回调,
@param outURL 存放导出视频的url
@since v1.10.0
*/
- (void)transitionMaker:(PLSTransitionMaker *)transitionMaker exportMediaSucceed:(NSURL *)outURL;
/**
@abstract 文字转视频失败回调
@param error 导出视频错误信息
@since v1.10.0
*/
- (void)transitionMaker:(PLSTransitionMaker *)transitionMaker exportMediaFailed:(NSError *)error;
@end
@interface PLSTransitionMaker : NSObject
/**
@brief 生成视频的宽高,建议和背景视频宽高比例保持一致. must set
@since v1.10.0
*/
@property (nonatomic, assign) CGSize outPixelSize;
/**
@brief 生成视频的帧率,= 0时,将使用背景视频的frameRate
@since v1.10.0
*/
@property (nonatomic, assign) float outFrameRate;
/**
@brief 生成视频底色, default: nil
@since v1.10.0
*/
@property (nonatomic, strong) UIColor *backgroundColor;
/**
@brief 视频总时长, default: 2.5s
@since v1.10.0
*/
@property (nonatomic, assign) double totalDuration;
/**
@brief 代理
@since v1.10.0
*/
@property (nonatomic, weak) id<PLSTransitionMakerDelegate> delegate;
/**
@brief 生成视频进度 block 回调
@since v1.10.0
*/
@property (copy, nonatomic) void(^exportProgressBlock)(CGFloat progress);
/**
@brief 预览view
@since v1.10.0
*/
@property (nonatomic, readonly) UIView *preview;
/**
@brief 背景视频的URL(提供一个纯白或纯黑的视频作为文字的背景)
@since v1.10.0
*/
@property (nonatomic, strong) NSURL *backgroundVideoURL;
/**
@brief 最终生成的视频的存放URL
@since v1.10.0
*/
@property (nonatomic, strong) NSURL *outputVideoURL;
/**
@abstract 添加PLSTextSetting
@param textSetting 要添加的实例
@return 返回唯一的resourceID编号,后面更新此textSetting的时候,带上返回的编号
@since v1.10.0
*/
- (NSInteger)addText:(PLSTextSetting *)textSetting;
/**
@abstract 添加PLSImageSetting
@param imageSetting 要添加的实例
@return 返回唯一的resourceID编号,后面更新此imageSetting的时候,带上返回的编号
@since v1.10.0
*/
- (NSInteger)addImage:(PLSImageSetting *)imageSetting;
/**
@abstract 添加PLSTransition到知道资源
@param transition 要添加的动画
@param resourceID 动画作用的资源编号
@since v1.10.0
*/
- (void)addTransition:(PLSTransition *)transition resourceID:(NSInteger)resourceID;
/**
@abstract 更新textsetting
@param resourceID 更新的PLSTextSetting编号
@param textSetting 新的PLSTextSetting实例,如果为nil,则执行删除resourceID操作
@since v1.10.0
*/
- (void)updateTextWithResourceID:(NSInteger)resourceID newTextSetting:(PLSTextSetting *)textSetting;
/**
@abstract 更新imageSetting
@param resourceID 更新的PLSImageSetting编号
@param imageSetting 新的PLSImageSetting实例,如果为nil,则执行删除resourceID操作
@since v1.10.0
*/
- (void)updateImageWithResourceID:(NSInteger)resourceID newImageSetting:(PLSImageSetting *)imageSetting;
/**
@abstract 删除所有文字和图片
@since v1.10.0
*/
- (void)removeAllResource;
/**
@abstract 播放
@since v1.10.0
*/
- (void)play;
/**
@abstract 停止播放
@since v1.10.0
*/
- (void)stop;
/**
@abstract 开始制作视频
@since v1.10.0
*/
- (void)startMaking;
/**
@abstract 取消视频制作
@since v1.10.0
*/
- (void)cancelMaking;
@end