AVCaptureDevice类
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;
- 硬件在系统上的物理位置
@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);