我们可以通过设置AVCaptureSession的一些属性来改变捕捉画面的质量
但是要注意:size相关的属性的时候需要首先进行测试设备是否支持
判断方法是 canSetSessionPreset
AVAssetExportPresetLowQuality 低质量 可以通过移动网络分享
AVAssetExportPresetMediumQuality 中等质量 可以通过WIFI网络分享
AVAssetExportPresetHighestQuality 高等质量
AVAssetExportPreset640x480
AVAssetExportPreset960x540
AVAssetExportPreset1280x720 720pHD
AVAssetExportPreset1920x1080 1080pHD
AVAssetExportPreset3840x2160
设置摄像头的方向
typedef NS_ENUM(NSInteger, AVCaptureDevicePosition) {
AVCaptureDevicePositionUnspecified = 0, // 最近打开的方向,记录最近时间打开的方向
AVCaptureDevicePositionBack = 1, // 后置摄像头
AVCaptureDevicePositionFront = 2 // 前置摄像头
} NS_AVAILABLE(10_7, 4_0) __TVOS_PROHIBITED;
设置闪光灯模式
typedef NS_ENUM(NSInteger, AVCaptureFlashMode) {
AVCaptureFlashModeOff = 0, // 关闭闪光灯
AVCaptureFlashModeOn = 1, // 打开闪光灯
AVCaptureFlashModeAuto = 2 // 自动模式
} NS_AVAILABLE(10_7, 4_0) __TVOS_PROHIBITED;
系统对焦模式
typedef NS_ENUM(NSInteger, AVCaptureAutoFocusSystem) {
AVCaptureAutoFocusSystemNone = 0, // 不设置对焦模式
AVCaptureAutoFocusSystemContrastDetection = 1, // 对比度检测对焦
AVCaptureAutoFocusSystemPhaseDetection = 2, // 相位检测对焦
} NS_AVAILABLE_IOS(8_0) __TVOS_PROHIBITED;
视频防抖动模式
typedef NS_ENUM(NSInteger, AVCaptureVideoStabilizationMode) {
AVCaptureVideoStabilizationModeOff = 0, // 视频防抖动模式关闭
AVCaptureVideoStabilizationModeStandard = 1, // 视频防抖标准模式
AVCaptureVideoStabilizationModeCinematic = 2, // 视频防抖电影模式
AVCaptureVideoStabilizationModeAuto = -1, // 视频防抖自动模式
} NS_AVAILABLE_IOS(8_0) __TVOS_PROHIBITED;
手电筒模式
typedef NS_ENUM(NSInteger, AVCaptureTorchMode) {
AVCaptureTorchModeOff = 0, // 手电筒关闭
AVCaptureTorchModeOn = 1, // 手电筒打开
AVCaptureTorchModeAuto = 2, // 手电筒自动模式
} NS_AVAILABLE(10_7, 4_0) __TVOS_PROHIBITED;
焦距调整
typedef NS_ENUM(NSInteger, AVCaptureFocusMode) {
AVCaptureFocusModeLocked = 0, // 锁定对焦
AVCaptureFocusModeAutoFocus = 1, // 自动对焦模式
AVCaptureFocusModeContinuousAutoFocus = 2, // 连续自动对焦
} NS_AVAILABLE(10_7, 4_0) __TVOS_PROHIBITED;
自动对焦范围限制
typedef NS_ENUM(NSInteger, AVCaptureAutoFocusRangeRestriction) {
AVCaptureAutoFocusRangeRestrictionNone = 0, // 不限制
AVCaptureAutoFocusRangeRestrictionNear = 1, // 近距离对焦模式
AVCaptureAutoFocusRangeRestrictionFar = 2, // 远距离对焦模式
} NS_AVAILABLE_IOS(7_0) __TVOS_PROHIBITED;
曝光模式设置
typedef NS_ENUM(NSInteger, AVCaptureExposureMode) {
AVCaptureExposureModeLocked = 0, // 锁定曝光
AVCaptureExposureModeAutoExpose = 1, // 自动曝光模式
AVCaptureExposureModeContinuousAutoExposure = 2, // 连续自动曝光模式
AVCaptureExposureModeCustom NS_ENUM_AVAILABLE_IOS(8_0) = 3, // 自定义曝光模式
} NS_AVAILABLE(10_7, 4_0) __TVOS_PROHIBITED;
白平衡模式
typedef NS_ENUM(NSInteger, AVCaptureWhiteBalanceMode) {
AVCaptureWhiteBalanceModeLocked = 0, // 锁定白平衡模式
AVCaptureWhiteBalanceModeAutoWhiteBalance = 1, // 自动
AVCaptureWhiteBalanceModeContinuousAutoWhiteBalance = 2, // 连续自动
} NS_AVAILABLE(10_7, 4_0) __TVOS_PROHIBITED;
授权状态 用户是否已经允许启用设备
typedef NS_ENUM(NSInteger, AVAuthorizationStatus) {
AVAuthorizationStatusNotDetermined = 0, // 授权状态未确定
AVAuthorizationStatusRestricted, // 授权受限
AVAuthorizationStatusDenied, // 授权被拒绝
AVAuthorizationStatusAuthorized // 授权被许可
} NS_AVAILABLE_IOS(7_0) __TVOS_PROHIBITED;
交通运输 - 播放控制模式
typedef NS_ENUM(NSInteger, AVCaptureDeviceTransportControlsPlaybackMode) {
AVCaptureDeviceTransportControlsNotPlayingMode = 0,
AVCaptureDeviceTransportControlsPlayingMode = 1
} NS_AVAILABLE(10_7, NA) __TVOS_PROHIBITED;
AVFoundation 框架支持以下类型的条形码扫描:
supportedCodeType|简写 | 说明
:----|:----
AVMetadataObjectTypeUPCECode
|UPCECode | 一种长度固定、连续性的条码,解释
AVMetadataObjectTypeCode39Code
|Code39Code | 解释条形码 韵达和申通
AVMetadataObjectTypeCode39Mod43Code
|Code39Mod43Code | 解释
AVMetadataObjectTypeEAN13Code
|EAN13Code | 欧洲物品编码的缩写,EAN-13条码符号(EAN-13 Bar Code Symbol): EAN/UPC码制中的一个条码符号,用于表示EAN/UCC-13标识代码,解释
AVMetadataObjectTypeEAN8Code
|EAN8Code | EAN-8条码符号(EAN-8 Bar Code Symbol): EAN/UPC码制中的一个条码符号,用于表示EAN/UCC-8标识代码
AVMetadataObjectTypeCode93Code
|Code39Code | Code39是条形码的一种.星号来表示起始符及终止符,如邮政EMS单上的条码
AVMetadataObjectTypeCode128Code
|Code128Code | CODE128码是广泛应用在企业内部管理、生产流程、物流控制系统方面的条码码制.商品条码 顺丰用的
AVMetadataObjectTypePDF417Code
|PDF417Code | PDF417条码是一种高密度、高信息含量的便携式数据文件,是实现证件及卡片等大容量、高可靠性信息自动存储、携带并可用机器自动识读的理想手段解释
AVMetadataObjectTypeQRCode
|QRCode | 二维码
AVMetadataObjectTypeAztecCode
|AztecCode | 一种高容量二维条形码格式,解释
AVMetadataObjectTypeInterleaved2of5Code
|Interleaved2of5Code | 交叉25码,一维条形码的一种
AVMetadataObjectTypeITF14Code
|ITF14Code| GS1规定的用于商品流通环节的条码,ITF-14用于商品的储运和批发环节
有些没用过,不过基本上都有自己的特有功能, 有写的不对的地方希望各位可以指正。感谢
无聊时写写。 后续继续调研。