FURenderViewModel.h 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. //
  2. // FURenderViewModel.h
  3. // FULiveDemo
  4. //
  5. // Created by 项林平 on 2022/7/15.
  6. // Copyright © 2022 FaceUnity. All rights reserved.
  7. //
  8. #import <AVFoundation/AVFoundation.h>
  9. #import "FULiveDefine.h"
  10. NS_ASSUME_NONNULL_BEGIN
  11. @protocol FURenderViewModelDelegate <NSObject>
  12. @optional
  13. - (void)renderWillInputPixelBuffer:(CVPixelBufferRef)pixelBuffer;
  14. - (void)renderDidOutputDebugInformations:(NSString *)informations;
  15. /// 跟踪状态
  16. - (void)renderShouldCheckDetectingStatus:(FUDetectingParts)parts;
  17. @end
  18. @interface FURenderViewModel : NSObject
  19. /// 是否渲染,默认为YES
  20. @property (nonatomic, assign, getter=isRendering) BOOL rendering;
  21. /// 最大支持人脸数量,默认为4
  22. @property (nonatomic, assign) NSInteger maxFaceNumber;
  23. /// 最大支持人体数量,默认为4
  24. @property (nonatomic, assign) NSInteger maxHumanNumber;
  25. /// 需要跟踪的部位,默认为FUDetectingPartsFace
  26. @property (nonatomic, assign) FUDetectingParts detectingParts;
  27. /// 模块
  28. @property (nonatomic, assign, readonly) FUModule module;
  29. /// 需要加载的AI模型,默认为FUAIModelTypeFace
  30. @property (nonatomic, assign, readonly) FUAIModelType necessaryAIModelTypes;
  31. /// 是否自动加载AI模型,默认为YES
  32. @property (nonatomic, assign, readonly) BOOL loadAIModelAutomatically;
  33. /// 是否支持拍照和视频录制,默认YES
  34. @property (nonatomic, assign, readonly) BOOL supportCaptureAndRecording;
  35. /// 是否支持图片或者视频渲染,默认为NO
  36. @property (nonatomic, assign, readonly) BOOL supportMediaRendering;
  37. /// 是否支持分辨率选择,默认为NO
  38. @property (nonatomic, assign, readonly) BOOL supportPresetSelection;
  39. /// 是否支持切换相机输出格式,默认为YES
  40. @property (nonatomic, assign, readonly) BOOL supportSwitchingOutputFormat;
  41. /// 相机分辨率
  42. @property (nonatomic, copy, readonly) AVCaptureSessionPreset capturePreset;
  43. /// 相机前后置摄像头
  44. @property (nonatomic, assign, readonly) AVCaptureDevicePosition captureDevicePostion;
  45. /// 支持的分辨率
  46. @property (nonatomic, copy, readonly) NSArray<AVCaptureSessionPreset> *presets;
  47. /// 显示的分辨率数组
  48. @property (nonatomic, copy, readonly) NSArray<NSString *> *presetTitles;
  49. /// 是否支持10秒视频录制,默认为YES
  50. @property (nonatomic, assign, readonly) BOOL supportVideoRecording;
  51. /// 是否需要加载美颜,默认为YES
  52. @property (nonatomic, assign, readonly) BOOL needsLoadingBeauty;
  53. /// 人脸是否完整(临时处理海报换脸问题)
  54. @property (nonatomic, assign, readonly) BOOL trackedCompleteFace;
  55. /// 输入buffer宽度
  56. @property (nonatomic, assign, readonly) CGFloat inputBufferWidth;
  57. /// 输入buffer高度
  58. @property (nonatomic, assign, readonly) CGFloat inputBufferHeight;
  59. /// 拍照和录制视频按钮到屏幕底部距离
  60. @property (nonatomic, assign, readonly) CGFloat captureButtonBottomConstant;
  61. @property (nonatomic, weak) id<FURenderViewModelDelegate> delegate;
  62. /// 开始相机采集渲染
  63. /// @param renderView GLView
  64. - (void)startCameraWithRenderView:(FUGLDisplayView *)renderView;
  65. /// 停止相机
  66. - (void)stopCamera;
  67. /// 切换相机输出格式
  68. - (void)switchCameraOutputFormat;
  69. /// 切换相机分辨率
  70. /// @param preset 分辨率
  71. /// @param handler 硬件不支持分辨率回调
  72. - (void)switchCapturePreset:(AVCaptureSessionPreset)preset unsupportedPresetHandler:(nullable void (^)(void))handler;
  73. /// 切换相机前后置摄像头
  74. /// @param front 是否前置
  75. /// @param handler 硬件不支持当前分辨率回调
  76. - (void)switchCameraBetweenFrontAndRear:(BOOL)front unsupportedPresetHandler:(nullable void (^)(void))handler;
  77. /// 切换相机对焦模式
  78. /// @param mode 对焦模式
  79. - (void)switchCameraFocusMode:(FUCaptureCameraFocusMode)mode;
  80. /// 相机对焦
  81. /// @param point 对焦点
  82. - (void)setCameraFocusPoint:(CGPoint)point;
  83. /// 设置相机曝光度
  84. /// @param value 曝光度
  85. - (void)setCameraExposureValue:(CGFloat)value;
  86. /// 恢复相机对焦和曝光模式
  87. - (void)resetCameraFocusAndExposureMode;
  88. /// 相机恢复默认设置
  89. - (void)resetCameraSettings;
  90. @end
  91. NS_ASSUME_NONNULL_END