最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

IOS打開系統(tǒng)相機(jī)的閃光燈

 更新時間:2015年05月27日 11:31:58   投稿:hebedich  
今天給大家分享一下如何調(diào)用iphone的拍照功能和打開閃光燈,有些代碼我也不太理解,很多是在網(wǎng)上借鑒其他人的。

IOS有兩種的拍照和視頻的方式:

1.直接使用UIImagePickerController,這個類提供了一個簡單便捷的拍照與選擇圖片庫里圖片的功能。

2.另一種是通過AVFoundation.framework框架完全自定義拍照的界面和選擇圖片庫界面。我只做了第一種,就先給大家介紹第一種做法:

一、首先調(diào)用接口前,我們需要先判斷當(dāng)前設(shè)備是否支持UIImagePickerController,用isSourceTypeAvailable:來判斷是否可用

二、查看符合的媒體類型,這個時候我們調(diào)用availableMediaTypeForSourceType:判斷

在調(diào)用UIImagePickerController時我們需要加入他的兩個代理方法:

UINavigationControllerDelegate和UIImagePickerControllerDelegate,在調(diào)用攝像頭的時候還可以調(diào)閃光燈,一會代碼里有。

要調(diào)用閃光燈需要先建一個AVCaptureSession類的實(shí)例對象:

復(fù)制代碼 代碼如下:

//  Created by 張茫原 on 13-1-23.
//  Copyright (c) 2013年 張茫原. All rights reserved.
//
 
#import <UIKit/UIKit.h>
//調(diào)用閃光燈調(diào)用框架
#import <AVFoundation/AVFoundation.h>
 
@interface CameraViewController : UIViewController<UINavigationControllerDelegate, UIImagePickerControllerDelegate>
{
    AVCaptureSession * _AVSession;//調(diào)用閃光燈的時候創(chuàng)建的類
}
 
@property(nonatomic,retain)AVCaptureSession * AVSession;
 
@end

在.m的- (void)viewDidLoad里建立4Button,Camera調(diào)用相機(jī)、Library調(diào)用圖片庫、flashlight打開閃光燈、close關(guān)閉閃光燈,這里創(chuàng)建Button的代碼我就不再寫了。

復(fù)制代碼 代碼如下:

//打開相機(jī)
-(void)addCarema
{
    //判斷是否可以打開相機(jī),模擬器此功能無法使用
    if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
        
        UIImagePickerController * picker = [[UIImagePickerController alloc]init];
        picker.delegate = self;
        picker.allowsEditing = YES;  //是否可編輯
        //攝像頭
        picker.sourceType = UIImagePickerControllerSourceTypeCamera;
        [self presentModalViewController:picker animated:YES];
        [picker release];
    }else{
        //如果沒有提示用戶
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error" message:@"你沒有攝像頭" delegate:nil cancelButtonTitle:@"Drat!" otherButtonTitles:nil];
        [alert show];
    }
}

打開相機(jī)后,然后需要調(diào)用UIImagePickerControllerDelegate里的方法,拍攝完成后執(zhí)行的方法和點(diǎn)擊Cancel之后執(zhí)行的方法:

復(fù)制代碼 代碼如下:

//拍攝完成后要執(zhí)行的方法
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    //得到圖片
    UIImage * image = [info objectForKey:UIImagePickerControllerOriginalImage];
    //圖片存入相冊
    UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil);
    [self dismissModalViewControllerAnimated:YES];
}
//點(diǎn)擊Cancel按鈕后執(zhí)行方法
-(void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
{
    [self dismissModalViewControllerAnimated:YES];
}

調(diào)用相機(jī)照片和保存到圖片庫已經(jīng)完成。

接著介紹打開照片庫:

復(fù)制代碼 代碼如下:

-(void)openPicLibrary
{
    //相冊是可以用模擬器打開的
    if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) {
        UIImagePickerController * picker = [[UIImagePickerController alloc]init];
        picker.delegate = self;
        picker.allowsEditing = YES;//是否可以編輯
        //打開相冊選擇照片
        picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
        [self presentModalViewController:picker  animated:YES];
        [picker release];
    }else{
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error" message:@"你沒有攝像頭" delegate:nil cancelButtonTitle:@"Drat!" otherButtonTitles:nil];
        [alert show];
    }
}
//選中圖片進(jìn)入的代理方法
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo
{
    [self dismissModalViewControllerAnimated:YES];
}

調(diào)用閃光燈的代碼,由于我也不是很理解,所以沒法加注釋,但是已經(jīng)親測可用,但是調(diào)閃光燈時有一個算是bug吧,閃光燈會閑一下,然后再一直亮

復(fù)制代碼 代碼如下:

-(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];
}

以上所述就是本文的全部內(nèi)容了,希望大家能夠喜歡。

相關(guān)文章

  • iOS?項(xiàng)目嵌入Flutter?運(yùn)行(最新推薦)

    iOS?項(xiàng)目嵌入Flutter?運(yùn)行(最新推薦)

    這篇文章主要介紹了iOS?項(xiàng)目嵌入Flutter?運(yùn)行,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-03-03
  • IOS 中CATextLayer繪制文本字符串

    IOS 中CATextLayer繪制文本字符串

    這篇文章主要介紹了IOS 中CATextLayer繪制文本字符串的相關(guān)資料,希望通過本能幫助到大家,需要的朋友可以參考下
    2017-10-10
  • IOS CocoaPods詳細(xì)使用方法

    IOS CocoaPods詳細(xì)使用方法

    自從有了CocoaPods以后,這些繁雜的工作就不再需要我們親力親為了,只需要我們做好少量的配置工作,CocoaPods會為我們做好一切
    2016-09-09
  • iOS實(shí)現(xiàn)控制屏幕常亮不變暗的方法示例

    iOS實(shí)現(xiàn)控制屏幕常亮不變暗的方法示例

    最近在工作中遇到了要將iOS屏幕保持常亮的需求,所以下面這篇文章主要給大家介紹了關(guān)于利用iOS如何實(shí)現(xiàn)控制屏幕常亮不變暗的方法,文中給出了詳細(xì)的示例代碼,需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-10-10
  • IOS開發(fā)之路--C語言預(yù)處理

    IOS開發(fā)之路--C語言預(yù)處理

    由于預(yù)處理指令是在編譯之前就進(jìn)行了,因此很多時候它要比在程序運(yùn)行時進(jìn)行操作效率高。在C語言中包括三類預(yù)處理指令,今天將一一介紹:宏定義、條件編譯、文件包含
    2014-08-08
  • ios使用AVFoundation讀取二維碼的方法

    ios使用AVFoundation讀取二維碼的方法

    這篇文章主要介紹了ios使用AVFoundation讀取二維碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-12-12
  • 淺談iOS解析HTMl標(biāo)簽以及開發(fā)中的一些坑

    淺談iOS解析HTMl標(biāo)簽以及開發(fā)中的一些坑

    這篇文章主要介紹了淺談iOS解析HTMl標(biāo)簽以及開發(fā)中的一些坑,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-12-12
  • iOS實(shí)現(xiàn)自動循環(huán)播放的banner實(shí)例詳解

    iOS實(shí)現(xiàn)自動循環(huán)播放的banner實(shí)例詳解

    輪播視圖通常也叫Banner,90%以上App都會用到的一個控件,網(wǎng)上有很多開源代碼,下面這篇文章主要給大家介紹了關(guān)于利用iOS如何實(shí)現(xiàn)自動循環(huán)播放的banner的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下。
    2017-12-12
  • xcode8提交ipa失敗無法構(gòu)建版本問題的解決方案

    xcode8提交ipa失敗無法構(gòu)建版本問題的解決方案

    xcode升級到xcode8后發(fā)現(xiàn)構(gòu)建不了新的版本。怎么解決呢?下面小編給大家?guī)砹藊code8提交ipa失敗無法構(gòu)建版本問題的解決方案,非常不錯,一起看看吧
    2016-10-10
  • iOS實(shí)現(xiàn)折疊單元格

    iOS實(shí)現(xiàn)折疊單元格

    這篇文章主要為大家詳細(xì)介紹了iOS實(shí)現(xiàn)折疊單元格,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-09-09

最新評論

平阳县| 禄丰县| 黔西县| 丰城市| 教育| 西乌| 邓州市| 新丰县| 龙陵县| 榆中县| 民丰县| 渝北区| 荥经县| 五大连池市| 广安市| 宁明县| 临湘市| 即墨市| 讷河市| 兴隆县| 洛南县| 枣庄市| 台南县| 蕉岭县| 河北省| 醴陵市| 天镇县| 修武县| 墨竹工卡县| 沾益县| 雷州市| 施甸县| 漾濞| 富锦市| 攀枝花市| 宁武县| 五华县| 织金县| 潼关县| 合肥市| 寿光市|