iOS 相機(jī) camera

導(dǎo)入系統(tǒng)庫以方便獲取媒體類型常量
#import <MobileCoreServices/UTCoreTypes.h>
檢查相機(jī)是否可用
#pragma mark - 檢查相機(jī)是否可用
-(void)isCameraAvail
{
    BOOL isAvailable = [UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera];
    if (isAvailable) {
        NSLog(@"相機(jī)可用");
    } else {
        NSLog(@"相機(jī)不可用 ");
    }
}
檢查攝像頭是否可用
#pragma mark - 檢查攝像頭是否可用
-(void)isCameraFront
{
    /*
     UIImagePickerControllerCameraDeviceFront 前置攝像頭
     UIImagePickerControllerCameraDeviceRear 后置攝像頭
     */
    BOOL isAvailable = [UIImagePickerController isCameraDeviceAvailable:UIImagePickerControllerCameraDeviceFront];
    if (isAvailable) {
        NSLog(@"攝像頭可用");
    } else {
        NSLog(@"攝像頭不可用");
    }
}
檢查閃光燈是否可用
#pragma mark - 檢查閃光燈是否可用
-(void)isFlashAvailable
{
    /*
     UIImagePickerControllerCameraDeviceFront 前置攝像頭
     UIImagePickerControllerCameraDeviceRear 后置攝像頭
     */
    BOOL isAvailable = [UIImagePickerController isFlashAvailableForCameraDevice:UIImagePickerControllerCameraDeviceFront];
    if (isAvailable) {
        NSLog(@"閃光燈可用");
    } else {
        NSLog(@"閃光燈不可用");
    }
}
支持的媒體類型
#pragma mark - 支持的媒體類型
-(void)cameraSupportMedia
{
    NSArray *mediaTypes = [UIImagePickerController availableMediaTypesForSourceType:UIImagePickerControllerSourceTypeCamera];
    for (NSString *type in mediaTypes) {
        /*
         public.image
         public.movie
         */
        NSLog(@"type - %@",type);
    }
}
調(diào)用相機(jī) (其中有將圖片保存到手機(jī))
-(void)configCamera
{
    UIImagePickerController *controller = [[UIImagePickerController alloc] init];
    controller.sourceType = UIImagePickerControllerSourceTypeCamera;
    NSString *mediaType = (__bridge NSString *)kUTTypeImage;
    controller.mediaTypes = [UIImagePickerController availableMediaTypesForSourceType:UIImagePickerControllerSourceTypeCamera]; // @[mediaType]; 支持媒體類型 圖片 視頻
    controller.allowsEditing = YES;
    controller.delegate = self;
    controller.cameraFlashMode = UIImagePickerControllerCameraFlashModeOn; // 開啟閃光燈
    controller.cameraDevice = UIImagePickerControllerCameraDeviceRear; // 前置攝像頭
    [self presentViewController:controller animated:YES completion:NULL];
}
#pragma mark - UIImagePickerControllerDelegate
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<UIImagePickerControllerInfoKey, id> *)info
{
    NSLog(@" %@ ",info);
    NSString *mediaType = [info objectForKey:UIImagePickerControllerMediaType];
    if ([mediaType isEqualToString:(__bridge NSString *)kUTTypeImage]) { // 照片
        
        UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
        
        // 將照片儲(chǔ)存到手機(jī)
        SEL saveImage = @selector(imageSavedSuccess:didFinishSaveWithError:contextInfo:);
        UIImageWriteToSavedPhotosAlbum(image, self, saveImage, NULL);
        
    } else if ([mediaType isEqualToString:(__bridge NSString *)kUTTypeVideo]) { // 視頻
        
        // UIImagePickerControllerMediaURL
        
    }
}

- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
{
    [picker dismissViewControllerAnimated:YES completion:NULL];
}

#pragma mark - private method
-(void)imageSavedSuccess:(UIImage *)image
  didFinishSaveWithError:(NSError *)error
             contextInfo:(void *)info
{
    if (!error) {
        NSLog(@"圖片保存成功");
    } else {
        NSLog(@"圖片保存失敗");
    }
}
視頻拍攝
  • 視頻配置
UIImagePickerController *controller = [[UIImagePickerController alloc] init];
    controller.sourceType = UIImagePickerControllerSourceTypeCamera;
    // 拍攝類型
    NSString *mediaType = (__bridge NSString *)kUTTypeMovie;
    controller.mediaTypes = @[mediaType];
    controller.delegate = self;
    controller.videoQuality = UIImagePickerControllerQualityTypeHigh; // 視頻質(zhì)量
    controller.videoMaximumDuration = 30.0f;  // 設(shè)置最長拍攝時(shí)間
    [self presentViewController:controller animated:YES completion:NULL];
  • UIImagePickerControllerDelegate
NSString *type = [info objectForKey:UIImagePickerControllerMediaType];
    if ([type isEqualToString:(__bridge NSString *)kUTTypeMovie]) {
        NSURL *url = [info objectForKey:UIImagePickerControllerMediaURL];
        NSString *path = url.path;
        //  判斷能不能保存到相冊(cè)
        if (UIVideoAtPathIsCompatibleWithSavedPhotosAlbum(path)) {
            UISaveVideoAtPathToSavedPhotosAlbum(path, self, @selector(video:didFinishSavingWithError:contextInfo:), NULL);
        }
    }
-(void)video:(NSString *)videoPath didFinishSavingWithError:(NSString *)error contextInfo:(void *)info
{
    if (!error) {
        NSLog(@"視頻保存成功");
    } else {
        NSLog(@"失敗");
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末藏杖,一起剝皮案震驚了整個(gè)濱河市暖混,隨后出現(xiàn)的幾起案子社裆,更是在濱河造成了極大的恐慌迟蜜,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,185評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件荡短,死亡現(xiàn)場離奇詭異丐枉,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)掘托,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門瘦锹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人闪盔,你說我怎么就攤上這事弯院。” “怎么了泪掀?”我有些...
    開封第一講書人閱讀 163,524評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵听绳,是天一觀的道長。 經(jīng)常有香客問我异赫,道長椅挣,這世上最難降的妖魔是什么头岔? 我笑而不...
    開封第一講書人閱讀 58,339評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮贴妻,結(jié)果婚禮上切油,老公的妹妹穿的比我還像新娘蝙斜。我一直安慰自己名惩,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,387評(píng)論 6 391
  • 文/花漫 我一把揭開白布孕荠。 她就那樣靜靜地躺著娩鹉,像睡著了一般。 火紅的嫁衣襯著肌膚如雪稚伍。 梳的紋絲不亂的頭發(fā)上弯予,一...
    開封第一講書人閱讀 51,287評(píng)論 1 301
  • 那天,我揣著相機(jī)與錄音个曙,去河邊找鬼锈嫩。 笑死,一個(gè)胖子當(dāng)著我的面吹牛垦搬,可吹牛的內(nèi)容都是我干的呼寸。 我是一名探鬼主播,決...
    沈念sama閱讀 40,130評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼猴贰,長吁一口氣:“原來是場噩夢啊……” “哼对雪!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起米绕,我...
    開封第一講書人閱讀 38,985評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤瑟捣,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后栅干,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體迈套,經(jīng)...
    沈念sama閱讀 45,420評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,617評(píng)論 3 334
  • 正文 我和宋清朗相戀三年碱鳞,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了桑李。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,779評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡劫笙,死狀恐怖芙扎,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情填大,我是刑警寧澤戒洼,帶...
    沈念sama閱讀 35,477評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站允华,受9級(jí)特大地震影響圈浇,放射性物質(zhì)發(fā)生泄漏寥掐。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,088評(píng)論 3 328
  • 文/蒙蒙 一磷蜀、第九天 我趴在偏房一處隱蔽的房頂上張望召耘。 院中可真熱鬧,春花似錦褐隆、人聲如沸污它。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽衫贬。三九已至,卻和暖如春歇攻,著一層夾襖步出監(jiān)牢的瞬間固惯,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評(píng)論 1 269
  • 我被黑心中介騙來泰國打工缴守, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留葬毫,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,876評(píng)論 2 370
  • 正文 我出身青樓屡穗,卻偏偏與公主長得像贴捡,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子鸡捐,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,700評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 原文鏈接http://www.cnblogs.com/kenshincui/p/4186022.html 音頻在i...
    Hyman0819閱讀 21,703評(píng)論 4 74
  • 輸入設(shè)備AVCaptureDevice 繼承自NSObject:是關(guān)于相機(jī)硬件的接口歇僧,用于配置底層硬件的屬性(例如...
    蘇沫離閱讀 19,017評(píng)論 0 52
  • 上一篇介紹了如何使用系統(tǒng)相機(jī)簡單图张、快速的進(jìn)行拍照,本篇將介紹如何使用框架提供的API直接控制攝像機(jī)硬件诈悍。 你還在為...
    Xiao_Mai閱讀 7,177評(píng)論 4 18
  • 這是我們班瑤瑤小朋友自己制作的書《我的一天》祸轮,這本書記錄了瑤瑤同學(xué)幸福快樂的一天侥钳。 自從上周她就開...
    靜靜老師1閱讀 544評(píng)論 0 0
  • (一)夢里夢到醒不來的夢 天已經(jīng)連續(xù)陰了好長時(shí)間了适袜。 何其朵洗完澡,拿著洗好的衣服去晾舷夺。襪子一直沒干苦酱,潮濕濕地在陽...
    木蕉蕉閱讀 202評(píng)論 0 0