PLSMixMediaItem.h
2.71 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
//
// PLSMixMediaItem.h
// PLShortVideoKit
//
// Created by hxiongan on 2018/6/7.
// Copyright © 2018年 Pili Engineering, Qiniu Inc. All rights reserved.
//
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#import "PLSTypeDefines.h"
@interface PLSMixMediaItem : NSObject
/**
@brief 合并文件的地址
@since v1.11.0
*/
@property (nonatomic, strong) NSURL *__nonnull mediaURL;
/**
@brief 是否使用音频. (默认: YES)
@since v1.11.0
*/
@property (nonatomic, assign) BOOL enableAudio;
/**
@brief 音量大小 (0 ~ 1.0, 默认: 1.0)
@since v1.11.0
*/
@property (nonatomic, assign) float volume;
/**
@brief 视频在最终合并的视频中的位置, 需要注意的是,这个参数影响的是视频编码时的分辨率,而非素材视频数据的预览大小,传递给编码器的图像尺寸与此尺寸不同时,默认会按照 AVVideoScalingModeResizeAspectFill 对图像做剪切,从而确保图像不会出现变形
@since v1.11.0
*/
@property (assign, nonatomic) CGRect videoFrame;
/**
@brief 相对于 Z 轴的层数。如果多个 PLSMixMediaItem 的 videoFrame 发生重合,那么 zIndex 大的将覆盖在 zIndex 小的上面
@since v1.11.0
*/
@property (assign, nonatomic) int zIndex;
/**
@brief 当视频的宽高比和 videoFrame 的宽高比不一致的时候,视频的contentMode (默认: PLSVideoFillModePreserveAspectRatioAndFill)
@since v1.11.0
*/
@property (assign, nonatomic) PLSVideoFillModeType fillMode;
/**
@brief 如果本文件时长小于设置合并的文件时长,是否将本文件以 loop 的形式添加到设置的合并文件时长。默认:YES
@since v1.11.0
*/
@property (assign, nonatomic) BOOL loop;
/**
@brief 设置本文件的开始播放时间。比如想要实现多个视频合并之后,播放模式是一个视频播放完成之后,另外一个视频接着播放,
那么可以将 loop 设置为 NO,并且将 PLSMultiVideoMixer 的属性 duration 设置为为所有文件的时长之和,
即可以通过设置 startTime 的值来实现. 默认:kCMTimeZero
@since v1.11.0
*/
@property (assign, nonatomic) CMTime startTime;
/**
@brief 本文件的时长。 只读属性,为实现多个视频合并播放模式“一个接着一个顺序播放”设置 startTime 提供方便
@since v1.11.0
*/
@property (readonly, nonatomic) CMTime duration;
/**
@brief 视频宽高。如果有视频通道,返回视频的宽高。如果没有,返回 CGSizeZero. 注意:这个 videoSize 是视频真实宽高经过 CGAffineTransform 处理之后宽高
@since v1.11.0
*/
@property (readonly, nonatomic) CGSize videoSize;
@end