源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

iOS开发中对于摄像头的一些基本使用方法分享

  • 时间:2022-03-05 20:46 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:iOS开发中对于摄像头的一些基本使用方法分享
在一些应用中,我们需要用到iOS设备的摄像头进行拍照,视频。并且从相册中选取我们需要的图片或者视频。 关于iOS摄像头和相册的应用,可以使用UIImagePickerController类来完成控制。 UIImagePickerController 这个类可以为大家提供照相的功能,以及图片,视频浏览的功能。 检查硬件是否安装有摄像头或者允许操作相册
[u]复制代码[/u] 代码如下:
#pragma mark - 摄像头和相册相关的公共类 // 判断设备是否有摄像头 - (BOOL) isCameraAvailable{ return [UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]; } // 前面的摄像头是否可用 - (BOOL) isFrontCameraAvailable{ return [UIImagePickerControllerisCameraDeviceAvailable:UIImagePickerControllerCameraDeviceFront]; } // 后面的摄像头是否可用 - (BOOL) isRearCameraAvailable{ return [UIImagePickerControllerisCameraDeviceAvailable:UIImagePickerControllerCameraDeviceRear]; }
[b]调用摄像头[/b]
[u]复制代码[/u] 代码如下:
- (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 ; } } }
上面的代码是使用前置摄像头和后置摄像头!
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部