SellyCloudSDK_demo/Example/SellyCloudSDK/Live/Beauty/FURenderKit.framework/Headers/FUCaptureCamera.h

137 lines
3.8 KiB
Objective-C
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//
// FUCamera.h
// FUAPIDemo
//
// Created by liuyang on 2016/12/26.
// Copyright © 2016年 liuyang. All rights reserved.
//
#import <Foundation/Foundation.h>
#import <AVFoundation/AVFoundation.h>
@class FUCaptureCamera;
@protocol FUCaptureCameraAudioDelegate <NSObject>
//音频
- (void)didOutputAudioSampleBuffer:(CMSampleBufferRef)sampleBuffer;
@end
@protocol FUCaptureCameraDelegate <NSObject>
-(void)didOutputVideoSampleBuffer:(CMSampleBufferRef)sampleBuffer captureDevicePosition:(AVCaptureDevicePosition)position;
@end
@protocol FUCaptureCameraDataSource <NSObject>
- (CGPoint)fuCaptureFaceCenterInImage:(FUCaptureCamera *)camera ;
@end
typedef NS_ENUM( NSInteger, FUCaptureCameraFocusMode) {
/* 先找人脸对焦模式 */
FUCaptureCameraFocusModeAutoFace,
/* 固定点对焦模式 */
FUCaptureCameraFocusModeChangeless
};
@interface FUCaptureCamera : NSObject
@property (nonatomic, weak) id<FUCaptureCameraAudioDelegate> audioDelegate;
@property (nonatomic, weak) id<FUCaptureCameraDelegate> delegate;
@property (nonatomic, weak) id<FUCaptureCameraDataSource> dataSource;
@property (nonatomic, assign, readonly) BOOL isFrontCamera;
@property (nonatomic, assign, readonly) BOOL isMirrored;
@property (nonatomic, assign, readonly) AVCaptureVideoOrientation videoOrientation;
@property (assign, nonatomic) int captureFormat; //采集格式
@property (copy , nonatomic) dispatch_queue_t videoCaptureQueue;//视频采集的队列
@property (copy , nonatomic) dispatch_queue_t audioCaptureQueue;//音频采集队列
@property (copy , nonatomic) dispatch_queue_t tmpCaptureQueue;//视频采集的队列
@property (assign, nonatomic) AVCaptureSessionPreset sessionPreset;
@property (assign, nonatomic) BOOL needsAudioTrack;//是否需要音频默认为NO
/// 是否正在采集
@property (assign, nonatomic) BOOL capturing;
- (instancetype)initWithCameraPosition:(AVCaptureDevicePosition)cameraPosition captureFormat:(int)captureFormat;
- (void)startCapture;
- (void)stopCapture;
- (void)changeCameraInputDeviceisFront:(BOOL)isFront;
- (void)takePhotoAndSave;
- (void)startRecord;
- (void)stopRecordWithCompletionHandler:(void (^)(NSString *videoPath))handler;
/* 当前分辨率是否支持前后置 */
-(BOOL)supportsAVCaptureSessionPreset:(BOOL)isFront;
/**
设置采集方向
@param orientation 方向
*/
- (void)setCaptureVideoOrientation:(AVCaptureVideoOrientation)orientation;
/**
查询当前相机最大曝光补偿信息
@param current 当前
@param max 最大
@param min 最小
*/
- (void)getCurrentExposureValue:(float *)current max:(float *)max min:(float *)min;
/**
恢复以屏幕中心自动连续对焦和曝光
*/
- (void)resetFocusAndExposureModes;
/// 修改采集分辨率
/// @param sessionPreset 分辨率
- (BOOL)changeSessionPreset:(AVCaptureSessionPreset)sessionPreset;
/**
修改采集视频镜像关系
@param videoMirrored videoMirrore
*/
- (void)changeVideoMirrored:(BOOL)videoMirrored;
/**
修改帧率
在iOS上使用AvCaptureDevice的setActiveFormat:和AvCaptureSession的setSessionPreset:是互斥的。
如果 frameRate <= 30 setActiveFormat 则该设备所连接的会话将其预设更改为avCaptureSessionPresetinputPriority
*/
- (void)changeVideoFrameRate:(int)frameRate;
- (void)setExposureValue:(float)value;
/// 设置曝光模式和兴趣点
/// @param focusMode 对焦模式
/// @param exposureMode 曝光模式
/// @param point 兴趣点
/// @param monitorSubjectAreaChange 是否监听主题变化
- (void)focusWithMode:(AVCaptureFocusMode)focusMode exposeWithMode:(AVCaptureExposureMode)exposureMode atDevicePoint:(CGPoint)point monitorSubjectAreaChange:(BOOL)monitorSubjectAreaChange;
/// 修改对焦模式
/// @param mode 对焦模式
- (void)cameraChangeMode:(FUCaptureCameraFocusMode)mode;
// 缩放
// 可用于模拟对焦
- (void)setZoomValue:(CGFloat)zoomValue;
@end