Page History

Cameraconfiguration

Last edited by 朱林
  • 输出图像格式
/** 设置输出图像格式,默认为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;