最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

iOS開發(fā)中對(duì)于攝像頭的一些基本使用方法分享

 更新時(shí)間:2015年10月14日 09:53:28   作者:doctorhsly  
這篇文章主要介紹了iOS開發(fā)中對(duì)于攝像頭的一些基本使用方法分享,包括判斷攝像頭是否可用的方法,需要的朋友可以參考下

在一些應(yīng)用中,我們需要用到iOS設(shè)備的攝像頭進(jìn)行拍照,視頻。并且從相冊(cè)中選取我們需要的圖片或者視頻。
關(guān)于iOS攝像頭和相冊(cè)的應(yīng)用,可以使用UIImagePickerController類來(lái)完成控制。

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


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

復(fù)制代碼 代碼如下:

#pragma mark - 攝像頭和相冊(cè)相關(guān)的公共類


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


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


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

調(diào)用攝像頭

復(fù)制代碼 代碼如下:
- (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 ;
}
}
}


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

相關(guān)文章

最新評(píng)論

深水埗区| 东乡县| 通辽市| 霍林郭勒市| 曲阜市| 水富县| 宁陕县| 肃宁县| 宣城市| 晋江市| 仙居县| 丹江口市| 新蔡县| 渝中区| 女性| 普安县| 南康市| 元氏县| 乐都县| 双流县| 玉龙| 大田县| 沈丘县| 女性| 太仓市| 临沧市| 潞城市| 昌乐县| 英山县| 内江市| 尼木县| 禄丰县| 安国市| 凌海市| 景东| 富川| 盖州市| 灵台县| 贵定县| 德清县| 西青区|