国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > iOS > 正文

iOS開發中攝像頭基本使用詳細解決辦法

2020-02-19 15:57:33
字體:
來源:轉載
供稿:網友

本篇文章主要介紹了iOS開發中攝像頭基本使用詳細解決辦法,希望小編整理的相關知識和資料都對你們有所幫助。

在一些應用中,我們需要用到iOS設備的攝像頭進行拍照,視頻。并且從相冊中選取我們需要的圖片或者視頻。
關于iOS攝像頭和相冊的應用,可以使用UIImagePickerController類來完成控制。

UIImagePickerController 這個類可以為大家提供照相的功能,以及圖片,視頻瀏覽的功能。


檢查硬件是否安裝有攝像頭或者允許操作相冊

?


#pragma mark - 攝像頭和相冊相關的公共類

?


// 判斷設備是否有攝像頭
- (BOOL) isCameraAvailable{
return [UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera];
}


// 前面的攝像頭是否可用
- (BOOL) isFrontCameraAvailable{
return [UIImagePickerControllerisCameraDeviceAvailable:UIImagePickerControllerCameraDeviceFront];
}


// 后面的攝像頭是否可用
- (BOOL) isRearCameraAvailable{
return [UIImagePickerControllerisCameraDeviceAvailable:UIImagePickerControllerCameraDeviceRear];
}

?

?

?

調用攝像頭

- (BOOL) hasMultipleCameras {
NSArray *devices = [AVCaptureDevice devicesWithMediaType:AVMediaTypeVideo];
if (devices != nil && [devices count] > 1) return YES;
return NO;
}

?

- (AVCaptureDevice *)cameraWithPosition : (AVCaptureDevicePosition) position
{
NSArray *devices = [AVCaptureDevice devicesWithMediaType:AVMediaTypeVideo];
for (AVCaptureDevice *device in devices )
if ( device.position == position )
return device;

return nil ;
}

?

- (void) swapFrontAndBackCameras {
//check for available cameras!
if (![self hasMultipleCameras]) return;

//assumes session is running
NSArray *inputs = self.captureSession.inputs; //should only be one value!
for ( AVCaptureDeviceInput *captureDeviceInput in inputs ) {
AVCaptureDevice *device = captureDeviceInput.device ;
if ( [device hasMediaType:AVMediaTypeVideo ] ) {
AVCaptureDevicePosition position = device.position ;
AVCaptureDevice *newCamera = nil ;
AVCaptureDeviceInput *newInput = nil ;

if (position == AVCaptureDevicePositionFront)
newCamera = [self cameraWithPosition:AVCaptureDevicePositionBack];
else
newCamera = [self cameraWithPosition:AVCaptureDevicePositionFront];

[self initializeCaptureDevice:newCamera];
newInput = [AVCaptureDeviceInput deviceInputWithDevice:newCamera error:nil];

// beginConfiguration ensures that pending changes are not applied immediately
[self.captureSession beginConfiguration ];

[self.captureSession removeInput:captureDeviceInput]; //remove current
[self.captureSession addInput:newInput]; //add new

// Changes take effect once the outermost commitConfiguration is invoked.
[self.captureSession commitConfiguration];
break ;
}
}
}

?


上面的代碼是使用前置攝像頭和后置攝像頭!

以上所述就是iOS開發中攝像頭基本使用詳細解決辦法的介紹,希望大家能夠喜歡,更多內容請繼續關注武林技術頻道網站!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 嵩明县| 邓州市| 屯留县| 衡南县| 青州市| 轮台县| 上思县| 华蓥市| 安图县| 瑞金市| 洪洞县| 讷河市| 华安县| 酒泉市| 柳州市| 四平市| 榆林市| 嫩江县| 榕江县| 黔江区| 元阳县| 南部县| 涟水县| 弥渡县| 临泉县| 红桥区| 临高县| 鹰潭市| 宁南县| 西吉县| 宿松县| 兰坪| 海南省| 临清市| 平罗县| 平武县| 青州市| 张掖市| 通江县| 乐陵市| 新闻|