苹果相机灯光怎么关闭开启

iphone开发打开系统相机的闪光灯
0人收藏此代码,
iphone开发打开系统相机的闪光灯转自:
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp今天给大家分享一下如何调用iphone的拍照功能和打开闪光灯,有些代码我也不太理解,很多是在网上借鉴其他人的。IOS有两种的拍照和视频的方式:1.直接使用UIImagePickerController,这个类提供了一个简单便捷的拍照与选择图片库里图片的功能。2.另一种是通过AVFoundation.framework框架完全自定义拍照的界面和选择图片库界面。我只做了第一种,就先给大家介绍第一种做法:一、首先调用接口前,我们需要先判断当前设备是否支持UIImagePickerController,用isSourceTypeAvailable:来判断是否可用二、查看符合的媒体类型,这个时候我们调用availableMediaTypeForSourceType:判断在调用UIImagePickerController时我们需要加入他的两个代理方法:UINavigationControllerDelegate和UIImagePickerControllerDelegate,在调用摄像头的时候还可以调闪光灯,一会代码里有。要调用闪光灯需要先建一个AVCaptureSession类的实例对象:
Created by 张茫原 on 13-1-23.
Copyright (c) 2013年 张茫原. All rights reserved.
#import &UIKit/UIKit.h&
//调用闪光灯调用框架
#import &AVFoundation/AVFoundation.h&
@interface CameraViewController : UIViewController&UINavigationControllerDelegate, UIImagePickerControllerDelegate&
AVCaptureSession * _AVS//调用闪光灯的时候创建的类
@property(nonatomic,retain)AVCaptureSession * AVS
//该代码片段来自于: /codes/objectc/7029
在.m的-&nbsp(void)viewDidLoad里建立4Button,Camera调用相机、Library调用图片库、flashlight打开闪光灯、close关闭闪光灯,这里创建Button的代码我就不再写了。
//打开相机
-(void)addCarema
//判断是否可以打开相机,模拟器此功能无法使用
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
UIImagePickerController * picker = [[UIImagePickerController alloc]init];
picker.delegate =
picker.allowsEditing = YES;
//是否可编辑
picker.sourceType = UIImagePickerControllerSourceTypeC
[self presentModalViewController:picker animated:YES];
[picker release];
//如果没有提示用户
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@&Error& message:@&你没有摄像头& delegate:nil cancelButtonTitle:@&Drat!& otherButtonTitles:nil];
[alert show];
//该代码片段来自于: /codes/objectc/7029
打开相机后,然后需要调用UIImagePickerControllerDelegate里的方法,拍摄完成后执行的方法和点击Cancel之后执行的方法:
//拍摄完成后要执行的方法
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
//得到图片
UIImage * image = [info objectForKey:UIImagePickerControllerOriginalImage];
//图片存入相册
UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil);
[self dismissModalViewControllerAnimated:YES];
//点击Cancel按钮后执行方法
-(void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
[self dismissModalViewControllerAnimated:YES];
//该代码片段来自于: /codes/objectc/7029
调用相机照片和保存到图片库已经完成。接着介绍打开照片库:
-(void)openPicLibrary
//相册是可以用模拟器打开的
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) {
UIImagePickerController * picker = [[UIImagePickerController alloc]init];
picker.delegate =
picker.allowsEditing = YES;//是否可以编辑
//打开相册选择照片
picker.sourceType = UIImagePickerControllerSourceTypePhotoL
[self presentModalViewController:picker
animated:YES];
[picker release];
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@&Error& message:@&你没有摄像头& delegate:nil cancelButtonTitle:@&Drat!& otherButtonTitles:nil];
[alert show];
//选中图片进入的代理方法
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo
[self dismissModalViewControllerAnimated:YES];
//该代码片段来自于: /codes/objectc/7029
调用闪光灯的代码,由于我也不是很理解,所以没法加注释,但是已经亲测可用,但是调闪光灯时有一个算是bug吧,闪光灯会闲一下,然后再一直亮
-(void)openFlashlight
AVCaptureDevice * device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
if (device.torchMode == AVCaptureTorchModeOff) {
//Create an AV session
AVCaptureSession * session = [[AVCaptureSession alloc]init];
// Create device input and add to current session
AVCaptureDeviceInput * input = [AVCaptureDeviceInput deviceInputWithDevice:device error:nil];
[session addInput:input];
// Create video output and add to current session
AVCaptureVideoDataOutput * output = [[AVCaptureVideoDataOutput alloc]init];
[session addOutput:output];
// Start session configuration
[session beginConfiguration];
[device lockForConfiguration:nil];
// Set torch to on
[device setTorchMode:AVCaptureTorchModeOn];
[device unlockForConfiguration];
[session commitConfiguration];
// Start the session
[session startRunning];
// Keep the session around
[self setAVSession:self.AVSession];
[output release];
-(void)closeFlashlight
[self.AVSession stopRunning];
[self.AVSession release];
//该代码片段来自于: /codes/objectc/7029
相关代码片段:
最新Objective C代码片段
合作网站:    这么重点的问题竟然没有一个人提???还是大家都会设置???  每次聊天想给朋友即时拍照的时候不管自拍还是直接拍 一个不注意就被闪死。。。  有解决办法吗大家。。。
楼主发言:5次 发图:0张 | 更多
  人???呢??????????
  ?????????????
  试了,我的手机好着呢  
  每次照相的时候都要先关闪光灯 心力交瘁

我要回帖

更多关于 苹果手机拍照灯怎么关 的文章

 

随机推荐