FUVideoRenderViewModel.h 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. //
  2. // FUVideoRenderViewModel.h
  3. // FULiveDemo
  4. //
  5. // Created by 项林平 on 2022/8/9.
  6. //
  7. #import <Foundation/Foundation.h>
  8. #import "FULiveDefine.h"
  9. #import <FURenderKit/FUVideoComponentDefines.h>
  10. #import "FUUtility.h"
  11. NS_ASSUME_NONNULL_BEGIN
  12. #define kFUFinalPath [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject stringByAppendingPathComponent:@"finalVideo.mp4"]
  13. @protocol FUVideoRenderViewModelDelegate <NSObject>
  14. - (void)videoRenderDidOutputPixelBuffer:(CVPixelBufferRef)pixelBuffer;
  15. // 单解码完成回调(视频播放)
  16. - (void)videoRenderDidFinishReading;
  17. - (void)videoRenderDidFinishProcessing;
  18. @optional
  19. // 解码编码程序进度回调
  20. - (void)videoRenderProcessingProgress:(CGFloat)progress;
  21. - (void)videoRenderShouldCheckDetectingStatus:(FUDetectingParts)parts;
  22. @end
  23. @interface FUVideoRenderViewModel : NSObject
  24. /// 是否渲染,默认为YES
  25. @property (nonatomic, assign, getter=isRendering) BOOL rendering;
  26. /// 需要跟踪的部位,默认为FUDetectingPartsFace
  27. @property (nonatomic, assign) FUDetectingParts detectingParts;
  28. /// 是否正在播放视频
  29. @property (nonatomic, assign, readonly) BOOL isReading;
  30. /// 是否正在循环预览
  31. @property (nonatomic, assign, readonly) BOOL isPreviewing;
  32. /// 是否正在运行解码编码程序 (保存视频)
  33. @property (nonatomic, assign, readonly) BOOL isProcessing;
  34. /// 需要加载的AI模型,默认为FUAIModelTypeFace
  35. @property (nonatomic, assign, readonly) FUAIModelType necessaryAIModelTypes;
  36. /// 视频方向,默认为FUVideoOrientationPortrait
  37. /// @discussion 开始视频解码后自动获取解码器的视频方向
  38. @property (nonatomic, assign, readonly) FUVideoOrientation videoOrientation;
  39. @property (nonatomic, strong, readonly) NSURL *videoURL;
  40. /// 保存按钮到屏幕底部距离
  41. @property (nonatomic, assign, readonly) CGFloat downloadButtonBottomConstant;
  42. @property (nonatomic, weak) id<FUVideoRenderViewModelDelegate> delegate;
  43. - (instancetype)initWithVideoURL:(NSURL *)videoURL;
  44. // 开始视频首帧预览
  45. - (void)startPreviewing;
  46. // 停止预览
  47. - (void)stopPreviewing;
  48. /// 开始解码
  49. - (void)startReading;
  50. /// 停止解码
  51. - (void)stopReading;
  52. /// 开始解码编码程序
  53. - (void)startProcessing;
  54. /// 停止解码编码程序
  55. - (void)stopProcessing;
  56. - (void)destroy;
  57. @end
  58. NS_ASSUME_NONNULL_END