AVCaptureDevice类

作者: 浅_若清风 | 来源:发表于2021-08-03 11:14 被阅读0次

AVCaptureDevice 是提供实时输入媒体数据(例如视频和音频)的物理设备。基本属性方法如下:
1.当前可用作媒体输入源的设备数组

+ (NSArray<AVCaptureDevice *> *)devices API_DEPRECATED("Use AVCaptureDeviceDiscoverySession instead.", ios(4.0, 10.0), macos(10.7, 10.15));

2.当前可用作具有给定媒体类型的媒体源的设备数组

+ (NSArray<AVCaptureDevice *> *)devicesWithMediaType:(AVMediaType)mediaType API_DEPRECATED("Use AVCaptureDeviceDiscoverySession instead.", ios(4.0, 10.0), macos(10.7, 10.15));

3.获取AVCaptureDevice实例

+ (nullable AVCaptureDevice *)defaultDeviceWithMediaType:(AVMediaType)mediaType;

4.获取指定ID的AVCaptureDevice实例

+ (nullable AVCaptureDevice *)deviceWithUniqueID:(NSString *)deviceUniqueID;

5.接收者是否提供具有给定媒体类型的媒体

- (BOOL)hasMediaType:(AVMediaType)mediaType;

6.指示设备是否已成功锁定,如果设备无法锁定,则指向一个 NSError

- (BOOL)lockForConfiguration:(NSError * _Nullable * _Nullable)outError;

7.释放对设备硬件属性的占有控制

- (void)unlockForConfiguration;

8.接收器是否可用于具有给定预设的捕获会话

- (BOOL)supportsAVCaptureSessionPreset:(AVCaptureSessionPreset)preset;

9.是否已连接

@property(nonatomic, readonly, getter=isConnected) BOOL connected;

10.是否已被其它设备使用

@property(nonatomic, readonly, getter=isInUseByAnotherApplication) BOOL inUseByAnotherApplication API_AVAILABLE(macCatalyst(14.0)) API_UNAVAILABLE(ios, watchos, tvos);

11.设备是否挂起

@property(nonatomic, readonly, getter=isSuspended) BOOL suspended API_AVAILABLE(ios(14.0)) API_UNAVAILABLE(watchos, tvos);

12.物理链接到接收器的 AVCaptureDevice 对象数组

@property(nonatomic, readonly) NSArray<AVCaptureDevice *> *linkedDevices API_UNAVAILABLE(ios, watchos, tvos);

13.接收器支持的 AVCaptureDeviceFormat 对象数组

@property(nonatomic, readonly) NSArray<AVCaptureDeviceFormat *> *formats API_AVAILABLE(ios(7.0));

14.当前活动格式

@property(nonatomic, retain) AVCaptureDeviceFormat *activeFormat API_AVAILABLE(ios(7.0));

15.当前活动的最小帧持续时间

@property(nonatomic) CMTime activeVideoMinFrameDuration API_AVAILABLE(ios(7.0));

16.当前活动的最大帧持续时间

@property(nonatomic) CMTime activeVideoMaxFrameDuration API_AVAILABLE(macos(10.9), ios(7.0));

17.接收器支持的 AVCaptureDeviceInputSource 对象数组

@property(nonatomic, readonly) NSArray<AVCaptureDeviceInputSource *> *inputSources API_UNAVAILABLE(ios, watchos, tvos);

18.接收器当前活动的输入源

@property(nonatomic, retain, nullable) AVCaptureDeviceInputSource *activeInputSource API_UNAVAILABLE(ios, watchos, tvos);

19.硬件在系统上的物理位置常量

typedef NS_ENUM(NSInteger, AVCaptureDevicePosition) {
    AVCaptureDevicePositionUnspecified = 0,//设备相对于系统硬件的位置未指定
    AVCaptureDevicePositionBack        = 1,//设备在物理上位于系统硬件的背面
    AVCaptureDevicePositionFront       = 2,//设备物理上位于系统硬件的前面
} API_AVAILABLE(macos(10.7), ios(4.0)) __WATCHOS_PROHIBITED __TVOS_PROHIBITED;
  1. 硬件在系统上的物理位置
@property(nonatomic, readonly) AVCaptureDevicePosition position;

21.未知设备

AVF_EXPORT AVCaptureDeviceType const AVCaptureDeviceTypeExternalUnknown API_AVAILABLE(macos(10.15)) API_UNAVAILABLE(ios, watchos, tvos);

22.内置麦克风

AVF_EXPORT AVCaptureDeviceType const AVCaptureDeviceTypeBuiltInMicrophone API_AVAILABLE(macos(10.15), ios(10.0)) __WATCHOS_PROHIBITED __TVOS_PROHIBITED;

23.内置广角摄像头设备

AVF_EXPORT AVCaptureDeviceType const AVCaptureDeviceTypeBuiltInWideAngleCamera API_AVAILABLE(macos(10.15), ios(10.0)) __WATCHOS_PROHIBITED __TVOS_PROHIBITED;

24.焦距比广角相机长的内置相机设备

AVF_EXPORT AVCaptureDeviceType const AVCaptureDeviceTypeBuiltInTelephotoCamera API_AVAILABLE(ios(10.0)) API_UNAVAILABLE(macos) __WATCHOS_PROHIBITED __TVOS_PROHIBITED;

25.焦距比广角相机短的内置相机设备

AVF_EXPORT AVCaptureDeviceType const AVCaptureDeviceTypeBuiltInUltraWideCamera API_AVAILABLE(ios(13.0)) API_UNAVAILABLE(macos) API_UNAVAILABLE(tvos, watchos);

26.由两个固定焦距相机,一个广角和一个长焦组成的设备

AVF_EXPORT AVCaptureDeviceType const AVCaptureDeviceTypeBuiltInDualCamera API_AVAILABLE(ios(10.2)) API_UNAVAILABLE(macos) __WATCHOS_PROHIBITED __TVOS_PROHIBITED;

27.由两台固定焦距摄像头组成的设备,一台超广角,一台广角

AVF_EXPORT AVCaptureDeviceType const AVCaptureDeviceTypeBuiltInDualWideCamera API_AVAILABLE(ios(13.0)) API_UNAVAILABLE(macos) API_UNAVAILABLE(tvos, watchos);

28.由三台定焦相机、一台超广角、一台广角、一台长焦组成的设备

AVF_EXPORT AVCaptureDeviceType const AVCaptureDeviceTypeBuiltInTripleCamera API_AVAILABLE(ios(13.0)) API_UNAVAILABLE(macos) API_UNAVAILABLE(tvos, watchos);

29.由两个摄像头组成的设备,一个 YUV 和一个红外

AVF_EXPORT AVCaptureDeviceType const AVCaptureDeviceTypeBuiltInTrueDepthCamera API_AVAILABLE(ios(11.1)) API_UNAVAILABLE(macos) __WATCHOS_PROHIBITED __TVOS_PROHIBITED;

30.获取设备类型

@property(nonatomic, readonly) AVCaptureDeviceType deviceType API_AVAILABLE(macos(10.15), ios(10.0));

31.获取给定类型、位置的AVCaptureDevice实例

+ (nullable AVCaptureDevice *)defaultDeviceWithDeviceType:(AVCaptureDeviceType)deviceType mediaType:(nullable AVMediaType)mediaType position:(AVCaptureDevicePosition)position API_AVAILABLE(macos(10.15), ios(10.0));

32.捕获设备当前系统压力状态的键值

@property(nonatomic, readonly) AVCaptureSystemPressureState *systemPressureState API_AVAILABLE(ios(11.1)) API_UNAVAILABLE(macos) API_UNAVAILABLE(watchos, tvos);

33.接收器是否是由组成物理设备组成的虚拟设备

@property(nonatomic, readonly, getter=isVirtualDevice) BOOL virtualDevice API_AVAILABLE(ios(13.0)) API_UNAVAILABLE(macos) API_UNAVAILABLE(watchos, tvos);

34.虚拟设备(例如双摄像头)可以切换到其下一个组成设备的视频缩放因子数组

@property(nonatomic, readonly) NSArray<NSNumber *> *virtualDeviceSwitchOverVideoZoomFactors API_AVAILABLE(ios(13.0)) API_UNAVAILABLE(macos) API_UNAVAILABLE(watchos, tvos);

35.接收器设备上闪光灯模式的常量

typedef NS_ENUM(NSInteger, AVCaptureFlashMode) {
    AVCaptureFlashModeOff  = 0,//闪光灯应始终关闭
    AVCaptureFlashModeOn   = 1,//闪光灯应始终打开
    AVCaptureFlashModeAuto = 2,//根据环境光线条件自动使用闪光灯
} API_AVAILABLE(macos(10.7), ios(4.0)) __WATCHOS_PROHIBITED __TVOS_PROHIBITED;

36.是否有闪光灯

@property(nonatomic, readonly) BOOL hasFlash;

37.闪光灯当前是否使用

@property(nonatomic, readonly, getter=isFlashAvailable) BOOL flashAvailable API_AVAILABLE(macos(10.15), ios(5.0));

38.闪光灯当前是否处于活动状态

@property(nonatomic, readonly, getter=isFlashActive) BOOL flashActive API_DEPRECATED("Use AVCapturePhotoOutput's -isFlashScene instead.", ios(5.0, 10.0)) API_UNAVAILABLE(macos);

39.是否支持给定的 flash 模式

- (BOOL)isFlashModeSupported:(AVCaptureFlashMode)flashMode API_DEPRECATED("Use AVCapturePhotoOutput's -supportedFlashModes instead.", ios(4.0, 10.0));

40.闪光灯的当前模式

@property(nonatomic) AVCaptureFlashMode flashMode API_DEPRECATED("Use AVCapturePhotoSettings.flashMode instead.", ios(4.0, 10.0));

41.设备上手电筒模式的常量

typedef NS_ENUM(NSInteger, AVCaptureTorchMode) {
    AVCaptureTorchModeOff  = 0,//手电筒应始终关闭
    AVCaptureTorchModeOn   = 1,//手电筒应始终打开
    AVCaptureTorchModeAuto = 2,//根据环境光线条件自动使用手电筒
} API_AVAILABLE(macos(10.7), ios(4.0)) __WATCHOS_PROHIBITED __TVOS_PROHIBITED;

42.是否有手电筒

@property(nonatomic, readonly) BOOL hasTorch;

43.手电筒当前是否可用

@property(nonatomic, readonly, getter=isTorchAvailable) BOOL torchAvailable API_AVAILABLE(macos(10.15), ios(5.0));

44.手电筒当前是否处于活动状态

@property(nonatomic, readonly, getter=isTorchActive) BOOL torchActive API_AVAILABLE(macos(10.15), ios(6.0));

45.手电筒亮度级别

@property(nonatomic, readonly) float torchLevel API_AVAILABLE(macos(10.15), ios(5.0));

46.是否支持给定的手电筒模式

- (BOOL)isTorchModeSupported:(AVCaptureTorchMode)torchMode;

47.手电筒的当前模式

@property(nonatomic) AVCaptureTorchMode torchMode;

48.将接收器手电筒的当前模式设置为指定级别的 AVCaptureTorchModeOn

- (BOOL)setTorchModeOnWithLevel:(float)torchLevel error:(NSError * _Nullable * _Nullable)outError API_AVAILABLE(macos(10.15), ios(6.0));

49.设备上焦点模式的常量

typedef NS_ENUM(NSInteger, AVCaptureFocusMode) {
    AVCaptureFocusModeLocked              = 0,//焦点应锁定在镜头的当前位置
    AVCaptureFocusModeAutoFocus           = 1,//设备应自动对焦一次,然后将对焦模式更改为 AVCaptureFocusModeLocked
    AVCaptureFocusModeContinuousAutoFocus = 2,//备应在需要时自动对焦
} API_AVAILABLE(macos(10.7), ios(4.0)) __WATCHOS_PROHIBITED __TVOS_PROHIBITED;

50.接收器的自动对焦系统对特定对焦扫描范围的限制的常量

typedef NS_ENUM(NSInteger, AVCaptureAutoFocusRangeRestriction) {
    AVCaptureAutoFocusRangeRestrictionNone = 0,//自动对焦系统不应限制对焦范围
    AVCaptureAutoFocusRangeRestrictionNear = 1,//自动对焦系统应限制靠近相机的拍摄对象的对焦范围
    AVCaptureAutoFocusRangeRestrictionFar  = 2,//自动对焦系统应限制远离相机的拍摄对象的对焦范围
} API_AVAILABLE(ios(7.0)) API_UNAVAILABLE(macos) __WATCHOS_PROHIBITED __TVOS_PROHIBITED;

51.是否支持给定的焦点模式

- (BOOL)isFocusModeSupported:(AVCaptureFocusMode)focusMode;

52.是否支持 AVCaptureLensPositionCurrent 以外的镜头位置

@property(nonatomic, readonly, getter=isLockingFocusWithCustomLensPositionSupported) BOOL lockingFocusWithCustomLensPositionSupported API_AVAILABLE(ios(10.0)) API_UNAVAILABLE(macos);

53.当前聚焦模式

@property(nonatomic) AVCaptureFocusMode focusMode;

54.是否支持关注点

@property(nonatomic, readonly, getter=isFocusPointOfInterestSupported) BOOL focusPointOfInterestSupported;

55.当前关注的焦点

@property(nonatomic) CGPoint focusPointOfInterest;

56.当前是否正在执行聚焦扫描以调整聚焦

@property(nonatomic, readonly, getter=isAdjustingFocus) BOOL adjustingFocus;

57.是否支持自动对焦范围限制

@property(nonatomic, readonly, getter=isAutoFocusRangeRestrictionSupported) BOOL autoFocusRangeRestrictionSupported API_AVAILABLE(ios(7.0)) API_UNAVAILABLE(macos);

58.指示自动对焦系统应如何限制其对焦扫描

@property(nonatomic) AVCaptureAutoFocusRangeRestriction autoFocusRangeRestriction API_AVAILABLE(ios(7.0)) API_UNAVAILABLE(macos);

59.是否支持平滑自动对焦

@property(nonatomic, readonly, getter=isSmoothAutoFocusSupported) BOOL smoothAutoFocusSupported API_AVAILABLE(ios(7.0)) API_UNAVAILABLE(macos);

60.是否应使用平滑自动对焦

@property(nonatomic, getter=isSmoothAutoFocusEnabled) BOOL smoothAutoFocusEnabled API_AVAILABLE(ios(7.0)) API_UNAVAILABLE(macos);

61.指示镜头的焦点位置

@property(nonatomic, readonly) float lensPosition API_AVAILABLE(ios(8.0)) API_UNAVAILABLE(macos);

62.将 focusMode 设置为 AVCaptureFocusModeLocked 并将 lensPosition 锁定在一个明确的值

- (void)setFocusModeLockedWithLensPosition:(float)lensPosition completionHandler:(nullable void (^)(CMTime syncTime))handler API_AVAILABLE(ios(8.0)) API_UNAVAILABLE(macos);

63.设备上的曝光模式的常量

typedef NS_ENUM(NSInteger, AVCaptureExposureMode) {
    AVCaptureExposureModeLocked                            = 0,//将曝光锁定为其当前值
    AVCaptureExposureModeAutoExpose                        = 1,//自动调整曝光一次,然后将曝光模式更改为 AVCaptureExposureModeLocked
    AVCaptureExposureModeContinuousAutoExposure            = 2,//在需要时自动调整曝光
    AVCaptureExposureModeCustom API_AVAILABLE(macos(10.15), ios(8.0)) = 3,//根据用户提供的 ISO、exposureDuration 值调整曝光
} API_AVAILABLE(macos(10.7), ios(4.0)) __WATCHOS_PROHIBITED __TVOS_PROHIBITED;

64.是否支持给定的曝光模式

- (BOOL)isExposureModeSupported:(AVCaptureExposureMode)exposureMode;

65.当前曝光模式

@property(nonatomic) AVCaptureExposureMode exposureMode;

66.是否支持感兴趣的曝光点

@property(nonatomic, readonly, getter=isExposurePointOfInterestSupported) BOOL exposurePointOfInterestSupported;

67.当前感兴趣的曝光点

@property(nonatomic) CGPoint exposurePointOfInterest;

68.自动曝光算法可能使用的最大曝光(积分)时间

@property(nonatomic) CMTime activeMaxExposureDuration API_AVAILABLE(ios(12.0)) API_UNAVAILABLE(macos) API_UNAVAILABLE(tvos, watchos);

69.当前是否正在调整相机曝光

@property(nonatomic, readonly, getter=isAdjustingExposure) BOOL adjustingExposure;

70.镜头光圈的大小

@property(nonatomic, readonly) float lensAperture API_AVAILABLE(ios(8.0)) API_UNAVAILABLE(macos);

71.曝光发生的时间长度

@property(nonatomic, readonly) CMTime exposureDuration API_AVAILABLE(ios(8.0)) API_UNAVAILABLE(macos);

72.当前曝光 ISO 值

@property(nonatomic, readonly) float ISO API_AVAILABLE(ios(8.0)) API_UNAVAILABLE(macos);

73.将exposureMode 设置为AVCaptureExposureModeCustom 并将exposureDuration 和ISO 锁定为显式值

- (void)setExposureModeCustomWithDuration:(CMTime)duration ISO:(float)ISO completionHandler:(nullable void (^)(CMTime syncTime))handler API_AVAILABLE(ios(8.0)) API_UNAVAILABLE(macos);

74.指示测光曝光水平与目标曝光值的偏移,以 EV 为单位

@property(nonatomic, readonly) float exposureTargetOffset API_AVAILABLE(ios(8.0)) API_UNAVAILABLE(macos);

75.应用于目标曝光值的偏差,以 EV 为单位

@property(nonatomic, readonly) float exposureTargetBias API_AVAILABLE(ios(8.0)) API_UNAVAILABLE(macos);

76.最小曝光偏差,以 EV 为单位

@property(nonatomic, readonly) float minExposureTargetBias API_AVAILABLE(ios(8.0)) API_UNAVAILABLE(macos);

77.最大曝光偏差,以 EV 为单位

@property(nonatomic, readonly) float maxExposureTargetBias API_AVAILABLE(ios(8.0)) API_UNAVAILABLE(macos);

78.设置要应用于目标曝光值的偏差

- (void)setExposureTargetBias:(float)bias completionHandler:(nullable void (^)(CMTime syncTime))handler API_AVAILABLE(ios(8.0)) API_UNAVAILABLE(macos);

79.是否应使用全局色调映射

@property(nonatomic, getter=isGlobalToneMappingEnabled) BOOL globalToneMappingEnabled API_AVAILABLE(ios(13.0)) API_UNAVAILABLE(macos) API_UNAVAILABLE(tvos, watchos);

80.设备上白平衡模式的常量

typedef NS_ENUM(NSInteger, AVCaptureWhiteBalanceMode) {
    AVCaptureWhiteBalanceModeLocked                     = 0,//白平衡应锁定在其当前值
    AVCaptureWhiteBalanceModeAutoWhiteBalance           = 1,//自动调整一次白平衡,然后将白平衡模式更改为 AVCaptureWhiteBalanceModeLocked
    AVCaptureWhiteBalanceModeContinuousAutoWhiteBalance = 2,//在需要时自动调整白平衡
} API_AVAILABLE(macos(10.7), ios(4.0)) __WATCHOS_PROHIBITED __TVOS_PROHIBITED;

81.RGB 白平衡增益值的结构

typedef struct {
    float redGain;
    float greenGain;
    float blueGain;
} AVCaptureWhiteBalanceGains API_AVAILABLE(ios(8.0)) API_UNAVAILABLE(macos) __WATCHOS_PROHIBITED __TVOS_PROHIBITED;

82.CIE 1931 xy 色度值的结构

typedef struct {
    float x;
    float y;
} AVCaptureWhiteBalanceChromaticityValues API_AVAILABLE(ios(8.0)) API_UNAVAILABLE(macos) __WATCHOS_PROHIBITED __TVOS_PROHIBITED;

83.白平衡颜色相关温度以及 [-150 - +150] 范围内的色调值的结构

typedef struct {
    float temperature;
    float tint;
} AVCaptureWhiteBalanceTemperatureAndTintValues API_AVAILABLE(ios(8.0)) API_UNAVAILABLE(macos) __WATCHOS_PROHIBITED __TVOS_PROHIBITED;

84.是否支持给定的白平衡模式

- (BOOL)isWhiteBalanceModeSupported:(AVCaptureWhiteBalanceMode)whiteBalanceMode;

85.是否支持除 AVCaptureWhiteBalanceGainsCurrent 之外的白平衡增益

@property(nonatomic, readonly, getter=isLockingWhiteBalanceWithCustomDeviceGainsSupported) BOOL lockingWhiteBalanceWithCustomDeviceGainsSupported API_AVAILABLE(ios(10.0)) API_UNAVAILABLE(macos);

86.当前的白平衡模式

@property(nonatomic) AVCaptureWhiteBalanceMode whiteBalanceMode;

87.是否正在调整相机白平衡

@property(nonatomic, readonly, getter=isAdjustingWhiteBalance) BOOL adjustingWhiteBalance;

88.当前使用的特定于设备的 RGB 白平衡增益值

@property(nonatomic, readonly) AVCaptureWhiteBalanceGains deviceWhiteBalanceGains API_AVAILABLE(ios(8.0)) API_UNAVAILABLE(macos);

89.当前使用的特定于设备的 Gray World RGB 白平衡增益值

@property(nonatomic, readonly) AVCaptureWhiteBalanceGains grayWorldDeviceWhiteBalanceGains API_AVAILABLE(ios(8.0)) API_UNAVAILABLE(macos);

90.AVCaptureWhiteBalanceGains 中的通道最大支持值

@property(nonatomic, readonly) float maxWhiteBalanceGain API_AVAILABLE(ios(8.0)) API_UNAVAILABLE(macos);

91.使用明确的 deviceWhiteBalanceGains 值将白平衡设置为锁定模式

- (void)setWhiteBalanceModeLockedWithDeviceWhiteBalanceGains:(AVCaptureWhiteBalanceGains)whiteBalanceGains completionHandler:(nullable void (^)(CMTime syncTime))handler API_AVAILABLE(ios(8.0)) API_UNAVAILABLE(macos);

92.将特定于设备的白平衡 RGB 增益值转换为与设备无关的色度值

- (AVCaptureWhiteBalanceChromaticityValues)chromaticityValuesForDeviceWhiteBalanceGains:(AVCaptureWhiteBalanceGains)whiteBalanceGains API_AVAILABLE(ios(8.0)) API_UNAVAILABLE(macos);

93.将独立于设备的色度值转换为特定于设备的白平衡 RGB 增益值

- (AVCaptureWhiteBalanceGains)deviceWhiteBalanceGainsForChromaticityValues:(AVCaptureWhiteBalanceChromaticityValues)chromaticityValues API_AVAILABLE(ios(8.0)) API_UNAVAILABLE(macos);

94.将特定于设备的白平衡 RGB 增益值转换为与设备无关的温度和色调值

- (AVCaptureWhiteBalanceTemperatureAndTintValues)temperatureAndTintValuesForDeviceWhiteBalanceGains:(AVCaptureWhiteBalanceGains)whiteBalanceGains API_AVAILABLE(ios(8.0)) API_UNAVAILABLE(macos);

95.将独立于设备的温度和色调值转换为特定于设备的白平衡 RGB 增益值

- (AVCaptureWhiteBalanceGains)deviceWhiteBalanceGainsForTemperatureAndTintValues:(AVCaptureWhiteBalanceTemperatureAndTintValues)tempAndTintValues API_AVAILABLE(ios(8.0)) API_UNAVAILABLE(macos);

96.是否应监视主题区域的更改

@property(nonatomic, getter=isSubjectAreaChangeMonitoringEnabled) BOOL subjectAreaChangeMonitoringEnabled API_AVAILABLE(ios(5.0)) API_UNAVAILABLE(macos);

97.是否支持在弱光条件下增强图像

@property(nonatomic, readonly, getter=isLowLightBoostSupported) BOOL lowLightBoostSupported API_AVAILABLE(ios(6.0)) API_UNAVAILABLE(macos);

98.是否启用接收器的弱光增强功能

@property(nonatomic, readonly, getter=isLowLightBoostEnabled) BOOL lowLightBoostEnabled API_AVAILABLE(ios(6.0)) API_UNAVAILABLE(macos);

99.是否应在必要时自动切换到弱光增强模式

@property(nonatomic) BOOL automaticallyEnablesLowLightBoostWhenAvailable API_AVAILABLE(ios(6.0)) API_UNAVAILABLE(macos);

100.控制图像输出的缩放级别

@property(nonatomic) CGFloat videoZoomFactor API_AVAILABLE(ios(7.0)) API_UNAVAILABLE(macos);

101.缩放系数的平滑变化

- (void)rampToVideoZoomFactor:(CGFloat)factor withRate:(float)rate API_AVAILABLE(ios(7.0)) API_UNAVAILABLE(macos);

102.缩放因子是否正在转换为rampToVideoZoomFactor:withRate 设置的值

@property(nonatomic, readonly, getter=isRampingVideoZoom) BOOL rampingVideoZoom API_AVAILABLE(ios(7.0)) API_UNAVAILABLE(macos);

103.缓和由rampToVideoZoomFactor:withRate 发起的任何视频缩放转换

- (void)cancelVideoZoomRamp API_AVAILABLE(ios(7.0)) API_UNAVAILABLE(macos);

104.广角相机和长焦相机之间进行选择的视频缩放系数

@property(atomic, readonly) CGFloat dualCameraSwitchOverVideoZoomFactor API_DEPRECATED_WITH_REPLACEMENT("virtualDeviceSwitchOverVideoZoomFactors", ios(11.0, 13.0)) API_UNAVAILABLE(macos);

105.客户端对支持媒体类型的底层硬件的授权的常量

typedef NS_ENUM(NSInteger, AVAuthorizationStatus) {
    AVAuthorizationStatusNotDetermined = 0,//用户尚未选择客户端是否可以访问硬件
    AVAuthorizationStatusRestricted    = 1,//客户端无权访问该媒体类型的硬件
    AVAuthorizationStatusDenied        = 2,//用户明确拒绝访问支持客户端媒体类型的硬件
    AVAuthorizationStatusAuthorized    = 3,//客户端被授权访问支持媒体类型的硬件
} API_AVAILABLE(macos(10.14), ios(7.0)) __WATCHOS_PROHIBITED __TVOS_PROHIBITED;

106.客户端访问支持给定媒体类型的底层硬件的授权状态

+ (AVAuthorizationStatus)authorizationStatusForMediaType:(AVMediaType)mediaType API_AVAILABLE(macos(10.14), ios(7.0));

107.请求访问媒体类型的底层硬件

+ (void)requestAccessForMediaType:(AVMediaType)mediaType completionHandler:(void (^)(BOOL granted))handler API_AVAILABLE(macos(10.14), ios(7.0));

108.传输控件当前播放模式的常量

typedef NS_ENUM(NSInteger, AVCaptureDeviceTransportControlsPlaybackMode) {
    AVCaptureDeviceTransportControlsNotPlayingMode = 0,//磁带传输没有穿过播放头
    AVCaptureDeviceTransportControlsPlayingMode    = 1,//磁带传输穿过播放头
} API_AVAILABLE(macos(10.7)) API_UNAVAILABLE(ios, watchos, tvos);

109.是否支持传输控制命令

@property(nonatomic, readonly) BOOL transportControlsSupported API_UNAVAILABLE(ios, watchos, tvos);

110.当前播放模式

@property(nonatomic, readonly) AVCaptureDeviceTransportControlsPlaybackMode transportControlsPlaybackMode API_UNAVAILABLE(ios, watchos, tvos);

111.当前播放速度

@property(nonatomic, readonly) AVCaptureDeviceTransportControlsSpeed transportControlsSpeed API_UNAVAILABLE(ios, watchos, tvos);

112.设置传输控制播放模式和速度

- (void)setTransportControlsPlaybackMode:(AVCaptureDeviceTransportControlsPlaybackMode)mode speed:(AVCaptureDeviceTransportControlsSpeed)speed API_UNAVAILABLE(ios, watchos, tvos);

113.是否允许接收器打开或关闭高动态范围流

@property(nonatomic) BOOL automaticallyAdjustsVideoHDREnabled API_AVAILABLE(ios(8.0)) API_UNAVAILABLE(macos);

114.是否启用接收器的流媒体高动态范围功能

@property(nonatomic, getter=isVideoHDREnabled) BOOL videoHDREnabled API_AVAILABLE(ios(8.0)) API_UNAVAILABLE(macos);

115.视频色彩空间的常量

typedef NS_ENUM(NSInteger, AVCaptureColorSpace) {
    AVCaptureColorSpace_sRGB       = 0,
    AVCaptureColorSpace_P3_D65     = 1,
    AVCaptureColorSpace_HLG_BT2020 API_AVAILABLE(ios(14.1)) API_UNAVAILABLE(macos) API_UNAVAILABLE(tvos, watchos) = 2,
} API_AVAILABLE(macos(10.15), ios(10.0)) __WATCHOS_PROHIBITED __TVOS_PROHIBITED;

116.当前活动色彩空间

@property(nonatomic) AVCaptureColorSpace activeColorSpace API_AVAILABLE(macos(10.15), ios(10.0));

117.当前活动的深度数据格式

@property(nonatomic, retain, nullable) AVCaptureDeviceFormat *activeDepthDataFormat API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos);

118.当前活动的最小深度数据帧持续时间(最大深度数据帧速率的倒数)

@property(nonatomic) CMTime activeDepthDataMinFrameDuration API_AVAILABLE(ios(12.0)) API_UNAVAILABLE(macos);

119.videoZoomFactor 属性可用的最小缩放系数

@property(nonatomic, readonly) CGFloat minAvailableVideoZoomFactor API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos);

120.videoZoomFactor 属性可用的最大缩放系数

@property(nonatomic, readonly) CGFloat maxAvailableVideoZoomFactor API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos);

121.支持几何畸变校正

@property(nonatomic, readonly, getter=isGeometricDistortionCorrectionSupported) BOOL geometricDistortionCorrectionSupported API_AVAILABLE(ios(13.0)) API_UNAVAILABLE(macos) API_UNAVAILABLE(tvos, watchos);

122.是否启用几何失真校正

@property(nonatomic, getter=isGeometricDistortionCorrectionEnabled) BOOL geometricDistortionCorrectionEnabled API_AVAILABLE(ios(13.0)) API_UNAVAILABLE(macos) API_UNAVAILABLE(tvos, watchos);

123.允许客户端按特定条件搜索设备

API_AVAILABLE(macos(10.15), ios(10.0)) __WATCHOS_PROHIBITED __TVOS_PROHIBITED

124.给定设备类型、媒体类型和位置的 AVCaptureDeviceDiscoverySession 实例

+ (instancetype)discoverySessionWithDeviceTypes:(NSArray<AVCaptureDeviceType> *)deviceTypes mediaType:(nullable AVMediaType)mediaType position:(AVCaptureDevicePosition)position;

125.设备列表

@property(nonatomic, readonly) NSArray<AVCaptureDevice *> *devices;

126.允许在 AVCaptureMultiCamSession 中同时使用的AVCaptureDevices数组

@property(nonatomic, readonly) NSArray<NSSet<AVCaptureDevice *> *> *supportedMultiCamDeviceSets API_AVAILABLE(ios(13.0)) API_UNAVAILABLE(macos) API_UNAVAILABLE(tvos, watchos);

127.支持的最小帧速率

@property(readonly) Float64 minFrameRate;

128.支持的最大帧速率

@property(readonly) Float64 maxFrameRate;

129.支持的最大帧持续时间

@property(readonly) CMTime maxFrameDuration;

130.最小帧持续时间

@property(readonly) CMTime minFrameDuration;

131.视频稳定模式的常量

typedef NS_ENUM(NSInteger, AVCaptureVideoStabilizationMode) {
    AVCaptureVideoStabilizationModeOff       = 0,//不应稳定视频
    AVCaptureVideoStabilizationModeStandard  = 1,//使用 iOS 5.0 引入的标准视频稳定算法来稳定视频
    AVCaptureVideoStabilizationModeCinematic = 2,//使用电影稳定算法稳定视频以获得更生动的效果
    AVCaptureVideoStabilizationModeCinematicExtended API_AVAILABLE(ios(13.0)) API_UNAVAILABLE(tvos, watchos) = 3,//使用扩展的电影稳定算法来稳定视频
    AVCaptureVideoStabilizationModeAuto      = -1,//选择最合适的视频稳定模式
} API_AVAILABLE(ios(8.0)) API_UNAVAILABLE(macos) __WATCHOS_PROHIBITED __TVOS_PROHIBITED;

132.自动对焦系统的常量

typedef NS_ENUM(NSInteger, AVCaptureAutoFocusSystem) {
    AVCaptureAutoFocusSystemNone              = 0,//自动对焦不可用
    AVCaptureAutoFocusSystemContrastDetection = 1,//通过对比度检测实现自动对焦
    AVCaptureAutoFocusSystemPhaseDetection    = 2,//通过相位检测实现自动对焦
} API_AVAILABLE(macos(10.15), ios(8.0)) __WATCHOS_PROHIBITED __TVOS_PROHIBITED;

133.媒体类型

@property(nonatomic, readonly) AVMediaType mediaType;

134.帧速率范围

@property(nonatomic, readonly) NSArray<AVFrameRateRange *> *videoSupportedFrameRateRanges;

135.水平视野

@property(nonatomic, readonly) float videoFieldOfView API_UNAVAILABLE(macos);

136.是否已装箱

@property(nonatomic, readonly, getter=isVideoBinned) BOOL videoBinned API_UNAVAILABLE(macos);

137.是否支持给定的视频稳定模式

- (BOOL)isVideoStabilizationModeSupported:(AVCaptureVideoStabilizationMode)videoStabilizationMode API_AVAILABLE(ios(8.0)) API_UNAVAILABLE(macos);

138.是否支持视频稳定

@property(nonatomic, readonly, getter=isVideoStabilizationSupported) BOOL videoStabilizationSupported API_DEPRECATED("Use isVideoStabilizationModeSupported: instead.", ios(7.0, 8.0)) API_UNAVAILABLE(macos);

139.AVCaptureDevice的videoZoomFactor 属性可用的最大缩放系数

@property(nonatomic, readonly) CGFloat videoMaxZoomFactor API_UNAVAILABLE(macos);

140.最小曝光持续时间

@property(nonatomic, readonly) CMTime minExposureDuration API_AVAILABLE(ios(8.0)) API_UNAVAILABLE(macos);

141.最大曝光持续时间

@property(nonatomic, readonly) CMTime maxExposureDuration API_AVAILABLE(ios(8.0)) API_UNAVAILABLE(macos);

142.最小曝光 ISO 值

@property(nonatomic, readonly) float minISO API_AVAILABLE(ios(8.0)) API_UNAVAILABLE(macos);

143.最大曝光 ISO 值

@property(nonatomic, readonly) float maxISO API_AVAILABLE(ios(8.0)) API_UNAVAILABLE(macos);

144.是否支持全局色调映射

@property(nonatomic, readonly, getter=isGlobalToneMappingSupported) BOOL globalToneMappingSupported API_AVAILABLE(ios(13.0)) API_UNAVAILABLE(macos) API_UNAVAILABLE(tvos, watchos);

145.是否支持高动态范围流

@property(nonatomic, readonly, getter=isVideoHDRSupported) BOOL videoHDRSupported API_AVAILABLE(ios(8.0)) API_UNAVAILABLE(macos);

146.是否支持可在当前平台上提供的最高照片质量

@property(nonatomic, readonly, getter=isHighestPhotoQualitySupported) BOOL highestPhotoQualitySupported API_AVAILABLE(ios(13.0)) API_UNAVAILABLE(macos) API_UNAVAILABLE(tvos, watchos);

147.伴随深度数据格式

@property(nonatomic, readonly) NSArray<AVCaptureDeviceFormat *> *supportedDepthDataFormats API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos);

148.AVCaptureOutput 子类的属性不支持接收器

@property(nonatomic, readonly) NSArray<Class> *unsupportedCaptureOutputClasses API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos);

149.是否支持提供人像效果遮罩

@property(nonatomic, readonly, getter=isPortraitEffectsMatteStillImageDeliverySupported) BOOL portraitEffectsMatteStillImageDeliverySupported API_AVAILABLE(ios(12.0)) API_UNAVAILABLE(macos) API_UNAVAILABLE(tvos, watchos);

150.是否支持此格式

@property(nonatomic, readonly, getter=isMultiCamSupported) BOOL multiCamSupported API_AVAILABLE(ios(13.0)) API_UNAVAILABLE(macos) API_UNAVAILABLE(tvos, watchos);

151.在几何失真校正后的水平视野

@property(nonatomic, readonly) float geometricDistortionCorrectedVideoFieldOfView API_AVAILABLE(ios(13.0)) API_UNAVAILABLE(macos) API_UNAVAILABLE(tvos, watchos);

相关文章

网友评论

    本文标题:AVCaptureDevice类

    本文链接:https://www.haomeiwen.com/subject/ibrjvltx.html