- 输出图像格式
/** 设置输出图像格式,默认为YES
* YES:kCVPixelFormatType_420YpCbCr8BiPlanarFullRange
* NO:kCVPixelFormatType_32BGRA
*/
@property(nonatomic, assign) bool captureAsYUV;
- 拍摄模式
/** 拍摄模式 default CameraModel_Onlyone
*/
@property (nonatomic,assign) CNLiveCameraModelType cameraModelType;
CNLiveCameraModelType枚举定义:
typedef NS_ENUM(NSUInteger, CNLiveCameraModelType) {
CNLiveCameraModel_Onlyone = 1 << 0,//录制完成立即返回
CNLiveCameraModel_Manytimes = 1 << 1,//录制完成保存到相册并不立即返回,可多次录制或拍照
};
- 是否在拍摄完成就保存到相册再返回
/** 是否在拍摄完成就保存到相册再返回 default false 该参数只有在 CameraModel_Onlyone 模式下才生效
*/
@property (nonatomic,assign) bool cameraWriteToAlbum;
- 前/后置摄像头
/** 前/后置摄像头 default AVCaptureDevicePositionFront
*/
@property (nonatomic,assign) AVCaptureDevicePosition cameraCaptureDevicePosition;
- 相机的方向
/** 相机的方向 default RecordVideoOrientationAuto
*/
@property (nonatomic,assign) CNLiveRecordVideoOrientation cameraRecordOrientation;
CNLiveRecordVideoOrientation 枚举定义:
//此参数在非方形录制下生效
typedef NS_ENUM(NSUInteger, CNLiveRecordVideoOrientation) {
CNLiveRecordVideoOrientationAuto = 1 << 0, // 横竖屏自动切换切换
CNLiveRecordVideoOrientationPortrait = 1 << 1, // 保持竖屏
CNLiveRecordVideoOrientationLeft = 1 << 2, // 保持横屏
};
相机录制大小
/** 相机录制大小(正方形录制,非正方形录制)
*/
@property (nonatomic,assign) CNLiveRecordVideoSizeType cameraRecordSizeType;
CNLiveRecordVideoSizeType 枚举定义:
typedef NS_ENUM(NSUInteger, CNLiveRecordVideoSizeType) {
CNLiveRecordVideoTypeSquare = 1 << 0, // 正方形录制 only
CNLiveRecordVideoTypeNotSquare = 1 << 1, // 非正方形录制 only
CNLiveRecordVideoTypeMixed = 1 << 2, // 混合 可切换
};
- 录制视频帧率
/** 录制视频帧率 default 30
*/
@property (nonatomic,assign) int32_t cameraFrameRate;
- 录制视频码率
/** 录制视频码率 default 4000000
*/
@property (nonatomic,assign) int32_t cameraBitRate;
- 录制还是拍照
/** 录制还是拍照 default RecordTypeVideo
*/
@property (nonatomic,assign) CNLiveRecord_Type cameraRecord_Type;
CNLiveRecord_Type 枚举定义:
typedef NS_ENUM(NSUInteger, CNLiveRecord_Type) {
CNLiveRecordType_Video = 0,//录制
CNLiveRecordType_Photo = 1,//拍照
CNLiveRecordType_MVVideo = 2,//短视频MV
};
- 视频输出路径
/** 视频输出路径
*/
@property (nonatomic,copy,nullable) NSString *cameraOutputPath;
- 录制的视频的大小
/**录制的视频的大小 (如:{720,1280}) default CGSizeZero
*/
@property (nonatomic,assign) CGSize cameraOutputSize;
- 正方形录制时配置按钮的位置
/** 正方形录制时配置按钮的位置(美颜,延时,摄像头切换 三个按钮的位置)
*/
@property (nonatomic,assign) CNLiveCameraCollocationPositionType cameraCollocationPosition;
- 正方形录制最大时长
/** 正方形录制最大时长(default 10 )
*/
@property (nonatomic,assign) float cameraSquare_MaxVideoDuration;
- 非正方形录制最大时长
/**非正方形录制最大时长 (default 0 ,不限制)
*/
@property (nonatomic,assign) float cameraNotSquare_MaxVideoDuration;
- 录制最小时长
/**录制最小时长 (default 0 ,不限制 正方形录制和长方形录制都生效)
*/
@property (nonatomic,assign) float cameraMinVideoDuration;
- 是否开启滤镜功能
/** 是否开启滤镜功能(只有在开启Faceu的时候该参数才生效)
*/
@property (nonatomic , assign) bool enableFilter;
- 人脸道具贴纸
/**人脸道具贴纸
*/
@property (assign, nonatomic) bool enableFaceU;
- 人脸道具贴纸证书
/**人脸道具贴纸证书
*/
@property (assign, nonatomic,nonnull) void *faceUAuth;
- 人脸道具贴纸证书长度
/**人脸道具贴纸证书长度
*/
@property (assign, nonatomic)Float64 lenFaceUAuth;
- 是否启用网络下载faceUnity
/**是否启用网络下载faceUnity
*/
@property (assign, nonatomic)bool enableNetFaceUnity;
- 人脸道具贴纸下载路径
/**人脸道具贴纸下载路径
*/
@property (copy, nonatomic,nonnull)NSString *faceUURL;
- 拍摄类型可拍摄短视频MV
/** 拍摄类型:可拍摄短视频MV(default true)
*/
@property (nonatomic,assign) bool cameraMV;
- 拍摄类型:可拍摄视频
/** 拍摄类型:可拍摄视频(default true)
*/
@property (nonatomic,assign) bool cameraVideo;
- 拍摄类型:可拍摄照片
/** 拍摄类型:可拍摄照片(default true)
*/
@property (nonatomic,assign) bool cameraPhoto;
- 短视频MV录制最小时长
/** 短视频MV录制最小时长(default 3s )
*/
@property (nonatomic,assign) float cameraMV_MinVideoDuration;
- 短视频MV录制最大时长
/** 短视频MV录制最大时长(default 15s )
*/
@property (nonatomic,assign) float cameraMV_MaxVideoDuration;
是否隐藏相机进入相册按钮
/** 是否隐藏相机进入相册按钮
*/
@property (nonatomic,assign) bool hiddenPhotoLib;
- faceU美颜设置
瘦脸
/**瘦脸 0.0~1.0 default 0.68
*/
@property (nonatomic , assign) float cheekThinning;
大眼
/**大眼 0.0~2.0 default 1.53
*/
@property (nonatomic , assign) float eyeEnlarging;
美白
/**美白 0.0~1.0 default 0.48
*/
@property (nonatomic , assign) float colorLevel;
磨皮
/**磨皮 1 2 3 4 5 default 3
*/
@property (nonatomic , assign) float blurLevel;
瘦脸等级
/** 瘦脸等级 0.0 ~ 1.0 默认1.0
*/
@property (nonatomic , assign) float faceShapeLevel;
瘦脸类型
/** 瘦脸类型 0.0 ~ 3.0 默认0.0
*/
@property (nonatomic , assign) float faceShape;
是否开启使用音乐录制
/*是否开启使用音乐录制. 如果需要切换音乐请设置好音乐下载路径,不设置则跳转到本地音乐界面 (editConfiguration.cloudMusicResourceURL)
*/
@property (nonatomic, assign) BOOL enableUseMusic;
- 传入需要录制时播放的音
/*传入需要录制时播放的音乐
*/
@property (nonatomic, strong) CNLiveMusicInfo * _Nullable musicInfo;
代码示例
_cameraCfg = [[CNLiveCameraConfiguration alloc] init];
_cameraCfg.cameraSquare_MaxVideoDuration = 0;
_cameraCfg.cameraNotSquare_MaxVideoDuration = 0;
_cameraCfg.cameraRecordSizeType = CNLiveRecordVideoTypeMixed;
_cameraCfg.cameraRecordOrientation = CNLiveRecordVideoOrientationAuto;
_cameraCfg.cameraCollocationPosition = CNLiveCameraCollocationPositionBottom;
_cameraCfg.cameraModelType = CNLiveCameraModel_Onlyone;
_cameraCfg.enableFaceU = true;
_cameraCfg.faceUAuth = &g_faceuAuth_package;
_cameraCfg.lenFaceUAuth = sizeof(g_faceuAuth_package);
_cameraCfg.enableNetFaceUnity = true;
_cameraCfg.enableFilter = true;
_cameraCfg.cheekThinning = 0.2;
_cameraCfg.eyeEnlarging = 0.2;
_cameraCfg.colorLevel = 0.2;
_cameraCfg.blurLevel = 2.0;
_cameraCfg.faceUURL = FaceUURL;
_cameraCfg.hiddenPhotoLib = false; //是否隐藏相机进入相册按钮
NSString * outputPath = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/exportVideoFile.mp4"];
_cameraCfg.cameraOutputPath = outputPath;
_cameraCfg.enableUseMusic = true;
NSString *path = [[NSBundle mainBundle] pathForResource:@"huiyi" ofType:@"mp3"];
CNLiveMusicInfo *musicInfo = [[CNLiveMusicInfo alloc] init];
musicInfo.url = [NSURL fileURLWithPath:path];
musicInfo.name = @"回忆";
musicInfo.clipTimeRange = kCMTimeRangeZero;
_cameraCfg.musicInfo = musicInfo;