在广告片中一个人拿着一部照相机在经超撩妹不停档的拍照,闪光灯频频闪烁,突然闪光灯不闪了,那个人试着按了几次快

13943人阅读
IOS开发调用系统相机和打开闪光灯
& &今天给大家分享一下如何调用iphone的拍照功能和打开闪光灯,有些代码我也不太理解,很多是在网上借鉴其他人的。IOS有两种的拍照和视频的方式:1.直接使用UIImagePickerController,这个类提供了一个简单便捷的拍照与选择图片库里图片的功能。2.另一种是通过AVFoundation.framework框架完全自定义拍照的界面和选择图片库界面。我只做了第一种,就先给大家介绍第一种做法:
一、首先调用接口前,我们需要先判断当前设备是否支持UIImagePickerController,用isSourceTypeAvailable:来判断是否可用
二、查看符合的媒体类型,这个时候我们调用availableMediaTypeForSourceType:判断
在调用UIImagePickerController时我们需要加入他的两个代理方法:
UINavigationControllerDelegate和UIImagePickerControllerDelegate,在调用摄像头的时候还可以调闪光灯,一会代码里有。
要调用闪光灯需要先建一个AVCaptureSession类的实例对象:
#import &UIKit/UIKit.h&
//调用闪光灯调用框架
#import &AVFoundation/AVFoundation.h&
@interface CameraViewController : UIViewController&UINavigationControllerDelegate, UIImagePickerControllerDelegate&
AVCaptureSession * _AVS//调用闪光灯的时候创建的类
@property(nonatomic,retain)AVCaptureSession * AVS
在.m的- (void)viewDidLoad里建立4Button,Camera调用相机、Library调用图片库、flashlight打开闪光灯、close关闭闪光灯
//打开相机
-(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];
打开相机后,然后需要调用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];
调用相机照片和保存到图片库已经完成。
接着介绍打开照片库:
-(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];
调用闪光灯的代码
-(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];
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:107942次
积分:1411
积分:1411
排名:千里之外
转载:36篇
译文:30篇
(1)(1)(1)(1)(2)(1)(1)(1)(2)(32)(1)(5)(5)(2)(1)(2)(2)(8)(2)||||||||||Copyright (C) 1999-, All Rights Reserved 版权所有 天极网络京公网安备84号17:23 提问
像照相机的闪光灯效果怎么触发?
我用下面的代码实现触发闪光灯方法:
[device setTorchMode:AVCaptureTorchModeOn];
[device setFlashMode:AVCaptureFlashModeOn];
2)0.1秒之后调用:
[device setTorchMode:AVCaptureTorchModeOn];
[device setFlashMode:AVCaptureFlashModeOn];
问题是,闪光灯没有那么亮,也不能让LED灯闪。有什么方法让闪光正常亮?
按赞数排序
看看这个:
其他相关推荐
其他相似问题&&& 从该相机液晶显示屏有指示和没有充电“吱吱”声来分析,初步判断相机闪光振荡没有起振或振荡控制电路有故障。  按实物画出该相机闪光振荡电路原理图(见附图)。经查发现该机的振荡和触发线圈是一体的,且其触发元件不是由开关控制,而是由VS1控制。其闪光灯振荡电路工作原理是:接通,集成块IC1就送出振荡控制信号(2.7V?到三极管V1的b极,三极管V1、V2、V3、V4相继导通工作产生振荡,在振荡变压器的次级就产生高压,经C3,VD1整流后给C11、C12充电。当需要闪光时,按动快门开关,集成块IC1就送出一个触发信号(1.5V),经R7送到可控硅VS1的控制极使之导通,触发C1通过可控硅和触发线圈T2的初级回路放电,在T2的次级产生高压,激发闪光灯管发光。先用表测三极管V1的b极有集成块IC1输出的2.7V控制信号,接着测三极管V2、V3、V4的各极电压,发现V4的b极电压为2.5V左右,怀疑V4的b、e结开路。拆下后测量确已开路损坏,找一个D809三极管进行代换后故障依旧。用表测C11的两端电压为2.5V,此时用手摸代换后的三极管D809特别热,在检查其他、电阻等元件都正常的情况下,基本判断振荡变压器T1损坏,有可能是高压线圈匝间短路。因没有同型号变压器代换,就把原振荡变压器的引脚与电路连接线割断,用一个其他型号的振荡变压器用引线接入电路,开机试之,仍不行,但用表测C11的两端已有60V左右的电压,三极管D809也发烫了,说明振荡电路已基本工作,但振荡后产生的电压还不足使闪光管触发发光。再仔细分析,问题可能在代换的振荡变压器接线不当,把引线调换后,再次进行试机,即听到闪光电路振荡吱吱声。等吱吱声消失,按闪光触发键,闪光管发光正常。因没有贴片式开关三极管,看电路板与机壳之间的位置尚能容得下,就把D980的管脚剪短,然后把管脚弯下焊到电路板上。在不拆除原振荡变压器的基础(触发线圈T2是好的)上,把代换的振荡变压器用引线进行连接并固定在空间较大的位置后装好机壳,闪光工作正常。
&&&&&往下看有更多相关资料
本网站试开通微、小企业商家广告业务;维修点推荐项目。收费实惠有效果!欢迎在QQ或邮箱联系!
试试再找找您想看的资料
资料搜索:
查看相关资料 & & &
copyright & &广电电器(中国梧州) -all right reserved& 若您有什么意见或建议请mail: & &
地址: 电话:(86)774-2826670& & &&)}

我要回帖

更多关于 甜妻有毒之老公爱不停 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信