#import “CameraViewController.h”
@interface CameraViewController ()
@end
@implementation CameraViewController
– (void)viewDidLoad {
[super viewDidLoad];
NSArray *arr = @[@”調用相機”,@”調用圖片庫”,@”開啟閃關燈”,@”關閉閃光燈”];
for (int i = 0; i < 4; i++) {
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame = CGRectMake(100, (100 + 10) * i + 50, 100, 100);
[button setTitle:arr[i] forState:(UIControlStateNormal)];
[button setTitleColor:[UIColor blackColor] forState:(UIControlStateNormal)];
if (i == 0) {
[button addTarget:self action:@selector(addCarema) forControlEvents:(UIControlEventTouchUpInside)];
}else if (i == 1)
{
[button addTarget:self action:@selector(openPicLibrary) forControlEvents:(UIControlEventTouchUpInside)];
}else if (i == 2)
{
[button addTarget:self action:@selector(openFlashlight) forControlEvents:(UIControlEventTouchUpInside)];
}
else if (i == 3)
{
[button addTarget:self action:@selector(closeFlashlight) forControlEvents:(UIControlEventTouchUpInside)];
}
[self.view addSubview:button];
}
// Do any additional setup after loading the view.
}
-(void)addCarema
{
//判斷是否可以開啟相機,模擬器無法使用此功能
if ([UIImagePickerController isSourceTypeAvailable:(UIImagePickerControllerSourceTypeCamera)]) {
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
picker.allowsEditing = YES; //是否可編輯
//網路攝影機
picker.sourceType = UIImagePickerControllerSourceTypeCamera;
[self presentViewController:picker animated:YES completion:nil];
}else
{
//如果沒有提示使用者
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@”Error” message:@”你沒有網路攝影機” delegate:nil cancelButtonTitle:@”Drat!” otherButtonTitles:nil, nil];
[alert show];
}
}
//拍攝完成後要執行的方法
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
//得到圖片
UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
//圖片存入相簿
UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil);
[self dismissViewControllerAnimated:YES completion:nil];
}
//點擊Cancel按鈕後執行方法
-(void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
{
[self dismissViewControllerAnimated:YES completion:nil];
}
-(void)openPicLibrary
{
//相簿是可以用模擬器開啟的
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) {
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
picker.allowsEditing = YES;
//開啟相簿選擇照片
picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
[self presentViewController:picker animated:YES completion:nil];
}else
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@”Error” message:@”你沒有網路攝影機” delegate:nil cancelButtonTitle:@”Drat!” otherButtonTitles:nil, nil];
[alert show];
}
}
-(void)openFlashlight
{
AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
if ([device hasTorch]) {
[device lockForConfiguration:nil];
[device setTorchMode:AVCaptureTorchModeOff];
[device unlockForConfiguration];
}
}
-(void)closeFlashlight
{
[self.AVSession stopRunning];
}
– (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
/*
#pragma mark – Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
– (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
// Get the new view controller using [segue destinationViewController].
// Pass the selected object to the new view controller.
}
*/
@end