iOS 自動上傳相冊中視頻/圖片--相冊視頻/圖片轉(zhuǎn)沙盒

一. 相冊內(nèi)數(shù)據(jù)轉(zhuǎn)沙盒應用場景

  • 使用ReplayKit時,需要將保存到相冊的視頻上傳至服務器,這時需要把相冊的數(shù)據(jù)轉(zhuǎn)換到沙盒中.

二. Photos庫--從相冊取最近一次的圖片/視頻復制一份到沙盒

  • 注意: ALAssetLibrary在ios8已經(jīng)過期,操作相冊蘋果推薦用更新的Photos類庫,此處使用Photos類庫講解,ALAssetLibrary不再闡述.
  • 訪問相冊需要提前獲取相冊權(quán)限,修改權(quán)限會重啟應用

基本思路

  • PHAsset 對象能獲取圖片相關的信息,非圖片本身.
  • 相冊和沙盒都在一個文件系統(tǒng)中,所以不需要把相冊圖片/視頻全部加載到內(nèi)存中(會導致內(nèi)存暴增)再存儲
  • 使用PHAssetResource和PHAssetResourceManager就可以直接復制圖片/視頻到沙盒中,不會導致內(nèi)存暴增.
  • 使用assetResourcesForAsset:方法可以把PHAsset轉(zhuǎn)化為PHAssetResource

1.判斷相冊權(quán)限

AVAuthorizationStatus authStatus = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo];
    if (authStatus == AVAuthorizationStatusRestricted || authStatus ==AVAuthorizationStatusDenied)
    {
        MLNewCustomDialog *ncd=[[MLNewCustomDialog alloc] initWithTitle:@"溫馨提示" andMoreText:@"請您設置允許本應用訪問您的相機\n設置>隱私>相機" andButton1:@"好的" andButton2:nil andBackViewForBlurImage:self.view];
        ncd.delegate=self;
        [self.view addSubview:ncd];
        [ncd show];
        return ;
    }

2.拷貝相冊中最近一次的圖片/視頻到沙盒中,方便上傳到服務器.

#import <Photos/Photos.h>

- (void)saveVideoSuccess:(void(^)())success{
    //獲取最近一次的相冊圖片/視頻的信息PHAsset
    PHFetchOptions *options = [[PHFetchOptions alloc] init];
    options.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"creationDate" ascending:NO]];
    options.includeAssetSourceTypes = PHAssetSourceTypeNone;//默認相冊
    PHFetchResult *assetsFetchResults = [PHAsset fetchAssetsWithOptions:options];
    PHAsset *asset = [assetsFetchResults firstObject];
    PHAssetResource *assetRescource = [[PHAssetResource assetResourcesForAsset:asset] firstObject];
    
    //創(chuàng)建保存到沙盒的路徑
    NSString *uuidString = [[NSUUID UUID] UUIDString];
    NSString *fileName = uuidString;
    NSString *documentPath = [NSString stringWithFormat:@"%@/photosFile", [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) firstObject]];
    NSFileManager *fileManager = [NSFileManager defaultManager];
    BOOL isDir= NO;
    BOOL existed = [fileManager fileExistsAtPath:documentPath isDirectory:&isDir];
    if (!(existed&&isDir)){
        [fileManager createDirectoryAtPath:documentPath withIntermediateDirectories:YES attributes:nil error:nil];
    }
    NSString *filePath=[documentPath stringByAppendingPathComponent:fileName];
    
    //保存到沙盒
     __weak typeof(self) weakSelf = self;
    PHAssetResourceManager *manager = [PHAssetResourceManager defaultManager];
    [manager writeDataForAssetResource:assetRescource toFile:[NSURL fileURLWithPath:filePath] options:nil completionHandler:^(NSError * _Nullable error) {
        if (error==nil) {
            if(success)success();
            NSLog(@"保存沙盒成功");
            [self showStudentAndTeacherView];
        }else{
            [weakSelf saveVideoSuccess:success];
            NSLog(@"保存沙盒失敗,重新嘗試");
        }
    }];
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末妆艘,一起剝皮案震驚了整個濱河市仔沿,隨后出現(xiàn)的幾起案子丝格,更是在濱河造成了極大的恐慌计露,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,743評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件遣妥,死亡現(xiàn)場離奇詭異慌核,居然都是意外死亡押逼,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評論 3 385
  • 文/潘曉璐 我一進店門胶惰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來器仗,“玉大人,你說我怎么就攤上這事【ィ” “怎么了威鹿?”我有些...
    開封第一講書人閱讀 157,285評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長轨香。 經(jīng)常有香客問我忽你,道長,這世上最難降的妖魔是什么臂容? 我笑而不...
    開封第一講書人閱讀 56,485評論 1 283
  • 正文 為了忘掉前任科雳,我火速辦了婚禮,結(jié)果婚禮上脓杉,老公的妹妹穿的比我還像新娘糟秘。我一直安慰自己,他們只是感情好球散,可當我...
    茶點故事閱讀 65,581評論 6 386
  • 文/花漫 我一把揭開白布尿赚。 她就那樣靜靜地躺著,像睡著了一般蕉堰。 火紅的嫁衣襯著肌膚如雪凌净。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,821評論 1 290
  • 那天屋讶,我揣著相機與錄音冰寻,去河邊找鬼。 笑死皿渗,一個胖子當著我的面吹牛斩芭,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播乐疆,決...
    沈念sama閱讀 38,960評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼秒旋,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了诀拭?” 一聲冷哼從身側(cè)響起迁筛,我...
    開封第一講書人閱讀 37,719評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎耕挨,沒想到半個月后细卧,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,186評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡筒占,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,516評論 2 327
  • 正文 我和宋清朗相戀三年贪庙,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片翰苫。...
    茶點故事閱讀 38,650評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡止邮,死狀恐怖这橙,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情导披,我是刑警寧澤屈扎,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站撩匕,受9級特大地震影響鹰晨,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜止毕,卻給世界環(huán)境...
    茶點故事閱讀 39,936評論 3 313
  • 文/蒙蒙 一模蜡、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧扁凛,春花似錦忍疾、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至叠必,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間妹窖,已是汗流浹背纬朝。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留骄呼,地道東北人共苛。 一個月前我還...
    沈念sama閱讀 46,370評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像蜓萄,于是被迫代替她去往敵國和親隅茎。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,527評論 2 349

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