iOS開發(fā)中對(duì)于攝像頭的一些基本使用方法分享
在一些應(yīng)用中,我們需要用到iOS設(shè)備的攝像頭進(jìn)行拍照,視頻。并且從相冊(cè)中選取我們需要的圖片或者視頻。
關(guān)于iOS攝像頭和相冊(cè)的應(yīng)用,可以使用UIImagePickerController類來(lái)完成控制。
UIImagePickerController 這個(gè)類可以為大家提供照相的功能,以及圖片,視頻瀏覽的功能。
檢查硬件是否安裝有攝像頭或者允許操作相冊(cè)
#pragma mark - 攝像頭和相冊(cè)相關(guān)的公共類
// 判斷設(shè)備是否有攝像頭
- (BOOL) isCameraAvailable{
return [UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera];
}
// 前面的攝像頭是否可用
- (BOOL) isFrontCameraAvailable{
return [UIImagePickerControllerisCameraDeviceAvailable:UIImagePickerControllerCameraDeviceFront];
}
// 后面的攝像頭是否可用
- (BOOL) isRearCameraAvailable{
return [UIImagePickerControllerisCameraDeviceAvailable:UIImagePickerControllerCameraDeviceRear];
}
調(diào)用攝像頭
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 ;
}
}
}
上面的代碼是使用前置攝像頭和后置攝像頭!
- Android開發(fā)教程之調(diào)用攝像頭功能的方法詳解
- Android 開發(fā)隨手筆記之使用攝像頭拍照
- Android實(shí)現(xiàn)調(diào)用攝像頭
- Android中判斷是否有前置攝像頭、后置攝像頭的方法
- android開發(fā)之調(diào)用手機(jī)的攝像頭使用MediaRecorder錄像并播放
- c#實(shí)現(xiàn)攝像頭拍照功能示例
- C#實(shí)現(xiàn)調(diào)用本機(jī)攝像頭實(shí)例
- unity實(shí)現(xiàn)攝像頭跟隨
- python操作攝像頭截圖實(shí)現(xiàn)遠(yuǎn)程監(jiān)控的例子
- Android實(shí)現(xiàn)手機(jī)攝像頭的自動(dòng)對(duì)焦
相關(guān)文章
在iOS10系統(tǒng)中微信后退無(wú)法發(fā)起ajax請(qǐng)求的問(wèn)題解決辦法
這篇文章主要介紹了在iOS10系統(tǒng)中微信后退無(wú)法發(fā)起ajax請(qǐng)求的問(wèn)題解決辦法,一般可以通過(guò)延時(shí)發(fā)送請(qǐng)求解決,下面通過(guò)本文給大家分享下解決辦法,需要的朋友參考下吧2017-01-01IOS 簡(jiǎn)單的本地json格式文件解析的實(shí)例詳解
這篇文章主要介紹了IOS 簡(jiǎn)單的本地json格式文件解析的實(shí)例詳解的相關(guān)資料,希望通過(guò)本文大家能夠掌握這部分內(nèi)容,需要的朋友可以參考下2017-09-09iOS實(shí)現(xiàn)相冊(cè)和網(wǎng)絡(luò)圖片的存取
本篇文章主要介紹了iOS實(shí)現(xiàn)相冊(cè)和網(wǎng)絡(luò)圖片的存取,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-04-04iOS中UIScrollView嵌套UITableView的實(shí)踐教程
在UIScrollView嵌套UITableView的問(wèn)題相信大家都遇到過(guò),小編最近在工作中就遇到了這個(gè)問(wèn)題,所以這篇文章主要介紹了iOS中UIScrollView嵌套UITableView的相關(guān)資料,文中介紹的方法是通過(guò)自己的實(shí)踐所得來(lái)的,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-05-05