手机
当前位置:查字典教程网 >编程开发 >IOS开发 >iOS开发中对于摄像头的一些基本使用方法分享
iOS开发中对于摄像头的一些基本使用方法分享
摘要:在一些应用中,我们需要用到iOS设备的摄像头进行拍照,视频。并且从相册中选取我们需要的图片或者视频。关于iOS摄像头和相册的应用,可以使用U...

在一些应用中,我们需要用到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开发中对于摄像头的一些基本使用方法分享】相关文章:

iOS开发中ViewController的页面跳转和弹出模态

iOS利用手机摄像头测心率

IOS开发:Unity3D根据动态的两个轨迹点绘制面详解

ios开发中时间转换的方法集锦

iOS开发中使用屏幕旋转功能的相关方法

iOS开发中实现hook消息机制的方法探究

ios开发中时间转换的方法集锦

iOS中长按调出菜单组件UIMenuController的使用实例

iOS开发:可交互原型的最佳实践

iOS Webview自适应实际内容高度的4种方法详解

精品推荐
分类导航