我们使用相机的的一些功能首先要进行一些相应的判断看看是否能进行调用
代码如下:
#import "ViewController.h"
#import <MobileCoreServices/MobileCoreServices.h>
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
if ([self isCameravail]) {
NSLog(@"当前相机可用");
}else{
NSLog(@"当前相机不可用");
}
if ([self isCameraFlashavailFront]) {
NSLog(@"当前前置闪光灯可用");
}else{
NSLog(@"当前前置闪光灯不可用");
}
if ([self isCameraFlashavailRear]) {
NSLog(@"当前后置闪光灯可用");
}else{
NSLog(@"当前后置闪光灯不可用");
}
if ([self isCameraavailRear]) {
NSLog(@"当前后置摄像头可用");
}else{
NSLog(@"当前后置摄像头不可用");
}
if ([self isCameraavailRear]) {
NSLog(@"当前前置摄像头可用");
}else{
NSLog(@"当前前置摄像头不可用");
}
//检查当前camera支持的媒体类型:image video
if ([self isCameraSupportMedia:(__bridge NSString*)kUTTypeImage]) {
NSLog(@"支持拍照");
}else if ([self isCameraSupportMedia:(__bridge NSString*)kUTTypeVideo]){
NSLog(@"支持录像");
}
}
//判断相机是否可用
-(BOOL)isCameravail{
return [UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera];
}
//前置闪光灯是否可用
-(BOOL)isCameraFlashavailFront{
return [UIImagePickerController isFlashAvailableForCameraDevice:UIImagePickerControllerCameraDeviceFront];
}
//后置闪光灯是否可用
-(BOOL)isCameraFlashavailRear{
return [UIImagePickerController isFlashAvailableForCameraDevice:UIImagePickerControllerCameraDeviceRear];
}
//前摄像头是否可用
-(BOOL)isCameraavailFront{
return [UIImagePickerController isCameraDeviceAvailable:UIImagePickerControllerCameraDeviceFront];
}
//后置摄像头会否可用
-(BOOL)isCameraavailRear{
return [UIImagePickerController isCameraDeviceAvailable:UIImagePickerControllerCameraDeviceRear];
}
//判断是否支持拍照和录像
-(BOOL)isCameraSupportMedia:(NSString *)paraMediaType
{
NSArray *avaiablemedia = [UIImagePickerController availableMediaTypesForSourceType:UIImagePickerControllerSourceTypeCamera];
for (NSString *item in avaiablemedia) {
if ([item isEqualToString:paraMediaType]) {
return true;
}
}
return false;
}
@end