IOS视频编辑图层LSOLayer类说明

二、视频编辑图层LSOLayer类

1

@property (readonly,assign)CGFloat originalDurationS

功能:
• 素材的原始时长.
• 比如视频本身的长度, 只读.不会改变

2

@property (readwrite,assign) CGFloat displayDurationS

功能:
• 当前图层的显示时长;
• 在没有裁剪时后变速等操作时, 等于原始时长

3

@property (nonatomic,readonly) CGSize originalSize

功能:
• 输入资源的原始大小

4

@property   (nonatomic,readonly) CGSize layerSize

功能:
• 图层在容器中的大小.
• 视频放到容器中后, 默认是对齐到边缘的,故图层大小会变;
• 视频默认对齐到播放器的边缘. 图片居中显示

5

@property (readwrite,assign) BOOL looping

功能:
• 叠加图层是否循环播放;
• 拼接图层设置后无效

6

@property(getter=isHidden) BOOL hidden

功能:
• 当前图层是否隐藏,
• 可以用这个在新创建的图层做隐藏/显示的效果, 类似闪烁, 或创建好,暂时不显示等效果

7

@property (readwrite, nonatomic)   CGFloat rotateAngle

功能:
• 角度值0--360度. 默认为0.0
• 顺时针旋转

8

@property (readwrite, nonatomic) CGPoint centerPoint

功能:
• 设置或读取   <当前图层的中心点>在容器中的坐标;
• 容器坐标的左上角是左上角为0,0. 从上到下 是Y轴, 从左到右是X轴;
• 当一个图层增加到容器中, 则默认是:
               positionX=drawPadSize.width/2;
               positionY=drawPadSize.height/2;

9

@property (readwrite,nonatomic) LSOPositionType positionType

功能:
• 设置当前位置, 枚举类型.
• 我们举例了常见的位置枚举类型:
• 上下左右/左上/左下/右上/右下/居中, 如果这些类型不满足您的需求, 可以通过centerPoint来设置每个素材的位置

10

@property (readwrite,nonatomic) LSOScaleType scaleType

功能:
• 缩放的枚举类型;
• kLSOScaleNONE: 无缩放形式.则内部会根据不同的素材,采用默认形式;
• kLSOScaleOriginal: 原始大小 直接放入, 不做任意处理;
• kLSOScaleFillComposition: 忽略百分比,把宽度等于容器的宽度, 高度等于容器的高度,填满整个容器.
• kLSOScaleCropFillComposition: 匹配放入到容器中,等比例填满整个容器, 把多的部分显示到容器的外面去;
• kLSOScaleVideoScale:视频缩放模式,如果视频宽度大于高度, 则宽度和容器对齐, 然后等比例调整高度; 反之亦然
• 如果以上不满足您的需求, 则可以 scaleSize设置具体缩放到的大小

11

@property (readwrite, nonatomic) CGSize scaleSize

功能:
• 把图层缩放到指定的大小;
• 以像素为单位

12

@property (readwrite, nonatomic) CGSize scaleSizeInView

功能:
• 以显示窗口为单位, 缩放大小, 此宽高是相对于LSODisplayView而言;
• 预览时有效

13

@property (readonly, nonatomic) CGSize layerSizeInView

功能:
• 以显示窗口为单位, 获取图层的宽高;
• 预览时有效

14

@property (readonly, nonatomic) BOOL isConcatImageLayer

功能:
• 是否是拼接图片层

15

@property (readonly, nonatomic) BOOL isConcatVideoLayer

功能:
• 是否拼接视频层

16

@property (readonly, nonatomic) BOOL isVideoLayer

功能:
• 是否是叠加的视频层

17

@property (readonly, nonatomic) BOOL isMVLayer

功能:
• 是否是叠加的mv透明动画层

18

@property (readonly, nonatomic) BOOL isImageLayer

功能:
• 是否是图片层

19

@property (readonly, nonatomic) BOOL isGifLayer

功能:
• 是否是Gif图层

20

@property (readonly, nonatomic) BOOL isImageArrayLayer

功能:
• 是否是图片数组图层

21

@property(readwrite,assign) CGFloat startTimeOfComp

功能:
• 在播放器中的开始时间, 只工作在叠加的一些图层; 比如叠加的图片/视频等

22

@property (readwrite, nonatomic) BOOL isConvertScalePosition

功能:
•   是否把缩放和位置的参数转换;
• 默认是不转换

23

@property (nonatomic,assign)BOOL mirrorDrawX

功能:
• 在绘制的时候, 横向图像镜像, 左边的在右边, 右边的在左边

24

@property (nonatomic,assign)BOOL mirrorDrawY

功能:
• 竖向图像镜像, 上面的放下面, 下面的放上面. 默认不调整

25

@property(readwrite, nonatomic) CGFloat opacityPercent

功能:
• 不透明度.
• 默认是1.0; 完全透明是0.0

26

@property (readwrite,assign) CGFloat cutStartTimeS

功能:
• 裁剪时长的开始时间
• 相对于原视频的时间而言;
• 仅对视频有效

27

@property (readwrite,assign) CGFloat cutEndTimeS

功能:
• 裁剪时长的结束时间;
• 仅对视频有效

28

-(void)addKeyFrameAtCompTime:(CGFloat)compTimeS

功能:
• 添加关键帧

29

-(void)removeKeyFrameWithCompTime:(CGFloat)compTimeS

功能:
• 删除关键帧

30

-(void)removeAllKeyframe

功能:
• 删除所有关键帧

31

@property (readwrite, assign) CGFloat brightnessPercent

功能:
• 调节亮度的百分比.
• 这里的百分比是两倍的关系,范围是 0--2.0; 其中 1.0 是默认值,
• 0---1.0是调小;
• 1.0 是默认,
• 1.0---2.0 是调大;
• 如要关闭,则调整为 1.0.默认是关闭

32

@property (readwrite, assign) CGFloat contrastFilterPercent

功能:
• 调节对比度的百分比.
• 这里的百分比是两倍的关系,范围是 0--2.0; 其中 1.0 是默认值,
• 0---1.0是调小;
• 1.0 是默认,
• 1.0---2.0 是调大;
• 如要关闭,则调整为 1.0.默认是关闭

33

@property (readwrite, assign) CGFloat saturationFilterPercent

功能:
• 调节饱和度的百分比.
• 这里的百分比是两倍的关系,范围是 0--2.0; 其中 1.0 是默认值,
• 0---1.0是调小;
• 1.0 是默认
• 1.0---2.0 是调大;
• 如要关闭,则调整为 1.0.默认是关闭

34

@property (readwrite, assign) CGFloat sharpFilterPercent

功能:
• 调节锐化的百分比.
• 这里的百分比是两倍的关系,范围是 0--2.0; 其中 1.0 是默认值,
• 0---1.0是调小;
• 1.0 是默认,
• 1.0---2.0 是调大;
• 如要关闭,则调整为 1.0.默认是关闭;

35

@property (readwrite, assign) CGFloat whiteBalanceFilterPercent

功能:
• 调节色温的百分比.
• 这里的百分比是两倍的关系,范围是 0--2.0; 其中 1.0 是默认值,
• 0---1.0是调小;
• 1.0 是默认,
• 1.0---2.0 是调大;
• 如要关闭,则调整为 1.0.默认是关闭

36

@property (readwrite, assign) CGFloat hueFilterPercent

功能:
• 调节色调的百分比.
• 这里的百分比是两倍的关系,范围是 0--2.0; 其中 1.0 是默认值,
• 0---1.0是调小;
• 1.0 是默认,
• 1.0---2.0 是调大;
• 如要关闭,则调整为 1.0.默认是关闭

37

@property (readwrite, assign) CGFloat exposurePercent

功能:
• 调节曝光度的百分比.
• 这里的百分比是两倍的关系,范围是 0--2.0; 其中 1.0 是默认值,
• 0---1.0是调小;
• 1.0 是默认,
• 1.0---2.0 是调大;
• 如要关闭,则调整为 1.0.默认是关闭

38

@property(readwrite, nonatomic) CGRect mosaicRect1InView

功能:
• 马赛克区域:
• xy以左上角开始, 左上角是0.0,0.0;
• 宽度是一个百分比, 最大是 1.0;
• 高度是 一个百分比. 最大是1.0;
• 你实时传递过来的宽高和坐标, 除以当前图层的宽高,转换为百分比后设置过来,
• 宽高坐标可以通过getCurrentRectInView 获取到当前图层在compositionView中的位置;
• 我们举例最大4个马赛克区域;如果你需要更多的马赛克区域, 则用LSOMosaicRectFilter执行增加;
• 预览时有效

39

@property (readwrite,nonatomic) CGFloat beautyLevel

功能:
• 设置美颜,
• 范围是0.0---1.0; 0.0是关闭美颜; 默认是0.0;

40

@property (nonatomic,nullable, copy)LanSongFilter   *filter

功能:
• 设置一个滤镜, 设置后, 之前增加的滤镜将全面清空.
• 类似滤镜一个一个的切换.新设置一个, 会覆盖上一个滤镜.
• 如果滤镜是无, 或清除之前的滤镜, 这里填nil;

41

-(void)addFilter:(nullable LanSongFilter *)filter

功能:
• 增加一个滤镜,
• 增加后, 会在上一个滤镜的后面增加一个新的滤镜.
• 是级联的效果
• 源图像--->滤镜1--->滤镜2--->滤镜3--->移动旋转缩放透明遮罩处理--->与别的图层做混合;

42

-(void)removeFilter:(nullable LanSongFilter *)filter

功能:
• 删除一个滤镜

43

-(void)removeAllFilter

功能:
• 删除所有滤镜

44

@property (nonatomic, assign)CGFloat audioVolume

功能:
• 调节素材中的音频音量.
• 如果素材有音量,则设置, 如果没有音量,则无效;
• 范围是0.0---8.0;
• 1.0是原始音量; 大于1.0,是放大; 小于1.0是减低, 如果降低建议是0.1;
• 如果是0.0则无声,

45

@property (readwrite, assign) CGFloat volumeFadeOutDurationS

功能:
• 音量淡出时长设置/获取;
• 默认是0.0,无淡出效果;
• 最大为当前有效时长的1/3;

46

@property (readwrite, assign) CGFloat volumeFadeInDurationS

功能:
• 音量淡入时长设置/获取;
• 默认是0.0; 无淡入效果;
• 最大为当前有效时长的1/3;

47

@property (nonatomic, assign)CGFloat videoSpeed

功能:
• 视频的播放速度;
• 范围是 0.1---10.0
• 默认1.0; 正常播放;
• 建议的设置参数是:
• 变慢: 0.1, 0.2, 0.4, 0.6,0.8
• 变快: 2.0, 3.0, 4.0, 6.0,8.0;
• 当前仅是画面变速, 变速过程中暂时无声音;

48

-(void)setVideoReverseAsync:(BOOL)isReverse asyncHandler:(void (^)(CGFloat percent, BOOL finish))handler

功能:
• 给视频图层设置倒序
• 异步是因为: 在视频第一次倒序的时候, 有一个异步预处理的过程;
• percent:预处理百分比: 0---1.0;
• 当前暂时不支持声音倒序. 在倒序时, 默认音量为0;
• 调用此方法,会先触发容器暂停;
• 在异步线程执行此block; 请在一下代码里调用;
dispatch_async(dispatch_get_main_queue(), ^{
});

49

- (void)cancelVideoReverse

功能:
• 取消正在执行的视频倒序功能

50

@property(nonatomic, readonly)BOOL isReverse

功能:
• 当前是否在倒序状态

51

- (void)getThumbnailAsyncWithHandler:(void (^)(UIImage *image, BOOL finish))handler

功能:
• 异步获取当前缩略图;
• 当前是每秒钟获取一帧;, 一帧宽高最大是100x100;

参数:
• image 是获取到的每一张缩略图;
• finish是 是否获取完毕;
• 获取的缩略图的高度是192像素,高度是192,返回所有图片的宽度总和是 当前要显示时长乘以192;
• 比如当前图层显示时长是6.2秒; 则返回的缩略图是 6张192x192的图片和一张 38x192 (38=192*0.2);

52

- (void)getOriginalThumbnailAsyncwithCount:(int)count handler:(void (^)(UIImage *image, BOOL finish))handler

功能:
• 获取原视频的缩略图;
• 从原视频的 第0秒,到最后; 返回的所有图片都是192x192像素大小;

参数:
• count 要获取的张数   , 如果不清楚获取几张图片, 则用(int)originalDurationS;
• handler 获取的异步回调;

53

- (void)getThumbnailAsyncWithDuration:(CGFloat)durationS handler:(void (^)(UIImage *image, BOOL finish))handler

功能:
• 获取指定时长的缩略图;
• 从当前裁剪的开始时间,计算, 每秒钟返回一帧, 一帧的宽高是192

参数:
• durationS 要的时长
• handler 异步回调;

54

@property (readonly,assign) CGFloat thumbnailDisplayTimeS

功能:
• 缩略图的显示时间

55

@property(nonatomic, readwrite)   NSMutableArray<UIImage *> *thumbImageArray

功能:
• 在你第一次调用过getThumbnailAsyncWithHandler后. 内部会保存到这个属性中.
• 在下次获取的时候, 则可以直接读取;

56

@property (nonatomic, assign)BOOL touchEnable

功能:
• 当前图层是否需要touch事件;
• 默认是需要的;

57

@property (nonatomic, assign) CGFloat backGroundBlurLevel

功能:
• 背景虚化值.
• 设置为0,取消背景;

58

- (void)resetLayerLayout

功能:
• 把图层恢复到刚增加时的位置和大小

59

-(BOOL)isDisplay

功能:
• 当前图层是否在显示状态

60

- (LSOAnimation *) addAnimationWithJsonPath:(NSString *)jsonPath atCompS:(CGFloat) atCompS

功能:
• 用AE的json形式增加一个动画

参数:
• jsonPath 动画文件
• atCompS 从播放器的什么位置增加

61

- (LSOAnimation *) setAnimationAtLayerHead:(NSString *)jsonPath

功能:
• 在图层的头部增加一个动画

参数:
• jsonPath 动画文件,json格式

62

- (LSOAnimation *) setAnimationAtLayerEnd:(NSString *)jsonPath

功能:
• 在图层的尾部增加一个动画

参数:
• jsonPath 动画文件, json格式

63

- (void)removeAnimation:(LSOAnimation *)animation

功能:
• 删除一个动画

参数:
• animation 动画对象,在addAnimation的时候增加的

64

- (void)removeAllAnimationArray

功能:
• 删除所有动画

65

- (NSMutableArray *)getAllAnimationArray

功能:
• 获取所有的动画对象数组

66

-(BOOL) playAnimation:(LSOAnimation *)animation

功能:
• 预览一个动画

参数:
• animation 预览会从动画的开始时间点,播放到结束时间点

67

- (LSOEffect *) addEffectWithJsonPath:(NSString *)jsonPath atCompS:(CGFloat) atCompS

功能:
• 用AE的json文件形式在指定时间点增加一个特效

参数:
• jsonPath 特效的json
• atCompS 从容器的指定时间点

68

- (LSOEffect *) addEffectWithJsonAtLayerHead:(NSString *)jsonPath

功能:
• 在图层的头部增加一个特效

参数:
• jsonPath 特效的json文件

69

- (LSOEffect *) addEffectWithJsonAtLayerEnd:(NSString *)jsonPath

功能:
• 在图层的尾部增加一个特效

参数:
• jsonPath 特效的json文件

70

- (void)removeEffect:(LSOEffect *)effect

功能:
• 删除一个特效,

参数:
• effect 特效对象,从addEffectXXX得到的特效对象

71

- (void)removeAllEffectArray

功能:
• 删除所有的特效

72

-(BOOL) playEffect:(LSOEffect *)effect

功能:
• 预览一个特效

参数:
• effect 预览会从特效的开始时间点,播放到结束时间点

73

- (NSMutableArray *)getAllEffectArray

功能:
• 获取所有的特效对象数组

74

@property(readwrite, assign)NSURL *transitionJsonUrl

功能:
• 设置转场的动画路径, json格式;
• 可通过这个获取是否设置了转场; 如果要取消转场;则这里等于nil;
• 设置后, 默认转场时间为1秒;

75

- (void)setMGTransitionWithColorUrl:(NSURL *)colorUrl maskUrl:(NSURL *)maskUrl

功能:
• 增加mg转场动画

76

@property(readwrite, assign)CGFloat transitionDurationS

功能:
• 设置或获取转场时间
• 在设置转场后有效;
• 时间范围是0---5.0秒;
• 如转场时间 大于图层时间, 则等于图层时间;
• 可以通过转场时间,判断当前图层是否有转场功能;

77

@property(readonly, nonatomic)CGFloat transitionMaxDurationS

功能:
• 转场可设置的最大值;
• 只能获取;
• 最大值等于, 当前图层的1/3 和下一个图层时长的1/3 和3秒 的最小值;

78

@property(readonly, nonatomic)BOOL isAddTransition

功能:
• 是否增加了转场

79

- (BOOL)playTransition

功能:
• 预览转场;
• 你需要在设置转场后调用才有效;

80

- (void)cancelTransition

功能:
• 取消转场

81

@property (nonatomic, readonly) CGFloat transitionStartTimeOfCompS

功能:
• 转场相对于播放器的开始时间

82

@property (readwrite,nonatomic)NSURL *videoURL

功能:
• 如果是拼接的是视频, 或叠加的是视频, 则可以获取到videoURL路径

83

@property (readwrite,nonatomic)UIImage *uiImage

功能:
• 拼接或叠加一张图片时, 增加的图片对象

84

@property (readonly, nonatomic, nullable) NSURL *reverseVideoUrl

功能:
• 获取倒序的视频路径;
• 在设置倒序,并倒序完成后获取;
• 在容器释放或 图层释放后, 内部会删除;


地址:杭州市余杭区文一西路1324号利尔达物联网科技园6号楼2001
咨询1:15158022550      邮箱:chenbuqing@lansongai.com
咨询2:18006716739      邮箱:support@lansongtech.com
咨询3:13819483824      邮箱:yangchaowei@lansongai.com