SLAvCaptureTool-bug副本.h 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. //
  2. // SLAvCaptureTool.h
  3. // DarkMode
  4. //
  5. // Created by wsl on 2019/9/20.
  6. // Copyright © 2019 wsl. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. #import <UIKit/UIKit.h>
  10. #import <AVFoundation/AVFoundation.h>
  11. #define DISPATCH_ON_MAIN_THREAD(mainQueueBlock) dispatch_async(dispatch_get_main_queue(),mainQueueBlock); //主线程操作
  12. @class SLAvCaptureTool;
  13. /// 捕获工具输出代理
  14. @protocol SLAvCaptureToolDelegate <NSObject>
  15. /// 完成拍照 ,返回image
  16. /// @param image 输出的图片
  17. /// @param error 错误信息
  18. - (void)captureTool:(SLAvCaptureTool *_Nonnull)captureTool didOutputPhoto:(UIImage *_Nullable)image error:(nullable NSError *)error;
  19. /// 完成音视频录制,返回临时文件地址
  20. /// @param outputFileURL 文件地址
  21. /// @param error 错误信息
  22. - (void)captureTool:(SLAvCaptureTool *_Nonnull)captureTool didFinishRecordingToOutputFileAtURL:(NSURL *_Nullable)outputFileURL error:(nullable NSError *)error;
  23. @end
  24. NS_ASSUME_NONNULL_BEGIN
  25. API_AVAILABLE(ios(10.0))
  26. ///摄像头捕获工具 配置都是默认的
  27. @interface SLAvCaptureTool : NSObject
  28. /// 摄像头采集内容预览视图
  29. @property (nonatomic, strong, nullable) UIView *preview;
  30. /// 摄像头是否正在运行
  31. @property (nonatomic, assign, readonly) BOOL isRunning;
  32. /// 摄像头方向
  33. @property (nonatomic, assign, readonly) AVCaptureDevicePosition devicePosition;
  34. /// 闪光灯状态 默认是关闭的,即黑暗情况下拍照不打开闪光灯 (打开/关闭/自动)
  35. @property (nonatomic, assign) AVCaptureFlashMode flashMode;
  36. /// 当前焦距 默认最小值1 最大值6
  37. @property (nonatomic, assign) CGFloat videoZoomFactor;
  38. /// 捕获工具输出代理
  39. @property (nonatomic, weak) id<SLAvCaptureToolDelegate> delegate;
  40. ///启动捕获
  41. - (void)startRunning;
  42. ///结束捕获
  43. - (void)stopRunning;
  44. /// 聚焦点 默认是连续聚焦模式 范围是在previewLayer上
  45. - (void)focusAtPoint:(CGPoint)focalPoint;
  46. /// 切换前/后置摄像头
  47. - (void)switchsCamera:(AVCaptureDevicePosition)devicePosition;
  48. /// 输出图片
  49. - (void)outputPhoto;
  50. /// 开始录制视频
  51. /// @param path 录制的视频输出路径
  52. - (void)startRecordVideoToOutputFileAtPath:(NSString *)path;
  53. /// 结束录制视频
  54. - (void)stopRecordVideo;
  55. /// 开始录制音频
  56. /// @param path 录制的音频输出路径
  57. - (void)startRecordAudioToOutputFileAtPath:(NSString *)path;
  58. /// 结束录制音频
  59. - (void)stopRecordAudio;
  60. @end
  61. NS_ASSUME_NONNULL_END