iOS使用UIImagePickerController錄制視頻

由于項目需求:在聊天中需在添加一個錄制和播放小視頻的功能宫蛆。下面主要講的使用蘋果提供的UIImagePickerController進行視頻的錄制。

第一步:需要在plist文件中添加3個權(quán)限

1、Privacy - Camera Usage Description 使用相機
2逊抡、Privacy - Microphone Usage Description 使用麥克風(fēng)
3荡含、Privacy - Photo Library Usage Description 使用相冊

第二步:導(dǎo)入靜態(tài)庫 如下圖所示

screenshot.png

第三步:代碼

1、需要導(dǎo)入的三個頭文件 并為當(dāng)前控制器添加代理UIImagePickerControllerDelegate,UINavigationControllerDelegate

#import <Photos/Photos.h>
#import <MobileCoreServices/MobileCoreServices.h>
#import <AssetsLibrary/AssetsLibrary.h>

2甚垦、需要判斷當(dāng)前設(shè)備是否可以拍攝和擁有拍攝權(quán)限以及對拍攝的一些參數(shù)進行的設(shè)置

UIImagePickerController * imagePicker = [[UIImagePickerController alloc] init];
    imagePicker.delegate = self;
    
       //判斷是否可以拍攝
    if ( [UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
        //判斷是否擁有拍攝權(quán)限
        AVAuthorizationStatus authStatus = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo];
        if(authStatus == AVAuthorizationStatusRestricted || authStatus == AVAuthorizationStatusDenied){
            return;
        }
        
        //拍攝
        imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
        
        //錄制的類型 下面為視頻
        imagePicker.mediaTypes=@[(NSString*)kUTTypeMovie];
        
        //錄制的時長
        imagePicker.videoMaximumDuration=10.0;
        
        //模態(tài)視圖的彈出效果
        imagePicker.modalPresentationStyle=UIModalPresentationOverFullScreen;
        [self presentViewController:imagePicker animated:YES completion:nil];
    }

3茶鹃、視頻錄制完成進入代理方法創(chuàng)建路徑獲得視頻


- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{
    
    NSString *mediaType=[info objectForKey:UIImagePickerControllerMediaType];
    
    //返回的媒體類型是照片或者視頻
    if ([mediaType isEqualToString:(NSString *)kUTTypeImage]) {
        //照片的處理
        [picker dismissViewControllerAnimated:YES completion:^{
            UIImage *img = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
        }];
        
    }else if ([mediaType isEqualToString:(NSString *)kUTTypeMovie]){
        
        //視頻的處理
        [picker dismissViewControllerAnimated:YES completion:^() {
            
            //文件管理器
            NSFileManager* fm = [NSFileManager defaultManager];
            
            //創(chuàng)建視頻的存放路徑
            NSString * path = [NSString stringWithFormat:@"%@/tmp/video%.0f.merge.mp4", NSHomeDirectory(), [NSDate timeIntervalSinceReferenceDate] * 1000];
            NSURL *mergeFileURL = [NSURL fileURLWithPath:path];
            videoUrl = mergeFileURL;
            
            //通過文件管理器將視頻存放的創(chuàng)建的路徑中
            [fm copyItemAtURL:[info objectForKey:UIImagePickerControllerMediaURL] toURL:mergeFileURL error:nil];
            AVURLAsset * asset = [AVURLAsset assetWithURL:[NSURL fileURLWithPath:path]];
            
            //根據(jù)AVURLAsset得出視頻的時長
            CMTime   time = [asset duration];
            int seconds = ceil(time.value/time.timescale);
            NSString *videoTime = [NSString stringWithFormat:@"%d",seconds];
  
            //可以根據(jù)需求判斷是否需要將錄制的視頻保存到系統(tǒng)相冊中
//            ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
//            NSURL *recordedVideoURL= [info objectForKey:UIImagePickerControllerMediaURL];
//            
//            if ([library videoAtPathIsCompatibleWithSavedPhotosAlbum:recordedVideoURL]) {
//                [library writeVideoAtPathToSavedPhotosAlbum:recordedVideoURL
//                                            completionBlock:^(NSURL *assetURL, NSError *error){
//                                                
//                                            }];
//            }
            
            }];
    }
}


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市艰亮,隨后出現(xiàn)的幾起案子闭翩,更是在濱河造成了極大的恐慌,老刑警劉巖迄埃,帶你破解...
    沈念sama閱讀 218,122評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件疗韵,死亡現(xiàn)場離奇詭異,居然都是意外死亡侄非,警方通過查閱死者的電腦和手機蕉汪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評論 3 395
  • 文/潘曉璐 我一進店門流译,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人肤无,你說我怎么就攤上這事先蒋。” “怎么了宛渐?”我有些...
    開封第一講書人閱讀 164,491評論 0 354
  • 文/不壞的土叔 我叫張陵竞漾,是天一觀的道長。 經(jīng)常有香客問我窥翩,道長业岁,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,636評論 1 293
  • 正文 為了忘掉前任寇蚊,我火速辦了婚禮笔时,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘仗岸。我一直安慰自己允耿,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,676評論 6 392
  • 文/花漫 我一把揭開白布扒怖。 她就那樣靜靜地躺著较锡,像睡著了一般。 火紅的嫁衣襯著肌膚如雪盗痒。 梳的紋絲不亂的頭發(fā)上蚂蕴,一...
    開封第一講書人閱讀 51,541評論 1 305
  • 那天,我揣著相機與錄音俯邓,去河邊找鬼骡楼。 笑死,一個胖子當(dāng)著我的面吹牛稽鞭,可吹牛的內(nèi)容都是我干的鸟整。 我是一名探鬼主播,決...
    沈念sama閱讀 40,292評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼朦蕴,長吁一口氣:“原來是場噩夢啊……” “哼吃嘿!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起梦重,我...
    開封第一講書人閱讀 39,211評論 0 276
  • 序言:老撾萬榮一對情侶失蹤兑燥,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后琴拧,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體降瞳,經(jīng)...
    沈念sama閱讀 45,655評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,846評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了挣饥。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片除师。...
    茶點故事閱讀 39,965評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖扔枫,靈堂內(nèi)的尸體忽然破棺而出汛聚,到底是詐尸還是另有隱情,我是刑警寧澤短荐,帶...
    沈念sama閱讀 35,684評論 5 347
  • 正文 年R本政府宣布倚舀,位于F島的核電站,受9級特大地震影響忍宋,放射性物質(zhì)發(fā)生泄漏痕貌。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,295評論 3 329
  • 文/蒙蒙 一糠排、第九天 我趴在偏房一處隱蔽的房頂上張望舵稠。 院中可真熱鬧,春花似錦入宦、人聲如沸哺徊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽落追。三九已至,卻和暖如春汹忠,著一層夾襖步出監(jiān)牢的瞬間淋硝,已是汗流浹背雹熬。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評論 1 269
  • 我被黑心中介騙來泰國打工宽菜, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人竿报。 一個月前我還...
    沈念sama閱讀 48,126評論 3 370
  • 正文 我出身青樓铅乡,卻偏偏與公主長得像,于是被迫代替她去往敵國和親烈菌。 傳聞我的和親對象是個殘疾皇子阵幸,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,914評論 2 355

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