蘋果手機(jī)部分機(jī)型支持微距拍攝,這些機(jī)型使用超廣角鏡頭可以清晰的拍攝最近距離2厘米的微距照片和視頻。目前支持微距拍照的機(jī)型包括iPhone 13 Pro、iPhone 13 Pro Max、iPhone 14 Pro和iPhone 14 Pro Max、iPhone 15 Pro和iPhone 15 Pro Max。
相應(yīng)的使用自定義相機(jī)的 APP 要實(shí)現(xiàn)微距拍攝的功能,就需要首先搜索到支持微距的攝像設(shè)備,才能獲取到微距拍攝的能力。
簡(jiǎn)而言之,搜索設(shè)備順序可設(shè)為:
@[AVCaptureDeviceTypeBuiltInTripleCamera,AVCaptureDeviceTypeBuiltInDualWideCamera,AVCaptureDeviceTypeBuiltInWideAngleCamera, AVCaptureDeviceTypeBuiltInDualCamera];
詳細(xì)代碼如下:
- (AVCaptureDevice *)getCameraDeviceWithPosition:(AVCaptureDevicePosition )position {
NSArray<AVCaptureDeviceType> *deviceTypes = @[AVCaptureDeviceTypeBuiltInWideAngleCamera, AVCaptureDeviceTypeBuiltInDualCamera];//設(shè)備類型:廣角鏡頭、雙鏡頭
if (@available(iOS 13.0, *)) {
// 數(shù)組成員的順序,決定搜索設(shè)備的順序,不要隨意調(diào)整。
deviceTypes = @[AVCaptureDeviceTypeBuiltInTripleCamera,AVCaptureDeviceTypeBuiltInDualWideCamera,AVCaptureDeviceTypeBuiltInWideAngleCamera, AVCaptureDeviceTypeBuiltInDualCamera];
}
AVCaptureDeviceDiscoverySession *session = [AVCaptureDeviceDiscoverySession discoverySessionWithDeviceTypes:deviceTypes mediaType:AVMediaTypeVideo position:position];
for (AVCaptureDevice *camera in session.devices) {
if ([camera position] == position) {
return camera;
}
}
return nil;
}
修改默認(rèn)焦距
支持微距的設(shè)備,默認(rèn)的焦距是 0.5x,畫面囊括的內(nèi)容較多。期望將焦距改成 1x,與微信保持一致。修改方法如下:
AVCaptureDevice *device = [self getCameraDeviceWithPosition:position];
self.videoInput = [AVCaptureDeviceInput deviceInputWithDevice:device error:nil];
if (@available(iOS 13.0, *)) {
NSArray *factors = [self.videoInput.device virtualDeviceSwitchOverVideoZoomFactors];
if (factors.count) {
[self.videoInput.device lockForConfiguration:nil];
[self.videoInput.device setVideoZoomFactor:2];
[self.videoInput.device unlockForConfiguration];
}
}