2016-08-06 6 views
0

PHAsset 비디오 디스크의 파일 크기를 확인하려고합니다.비디오 PHAsset 디스크 파일 크기를 얻는 방법은 무엇입니까?

다음 코드는 "IMG_0188.mov 파일을 볼 수있는 권한이 없으므로 열 수 없습니다."오류를 반환합니다.

PHVideoRequestOptions *options = [[PHVideoRequestOptions alloc] init]; 
      options.version = PHVideoRequestOptionsVersionOriginal; 

      [[PHImageManager defaultManager] requestAVAssetForVideo:asset options:options resultHandler:^(AVAsset *avAsset, AVAudioMix *audioMix, NSDictionary *info) { 
       videoURL = [(AVURLAsset*)avAsset URL]; 

       NSNumber *videoDiskFileSize; 
       NSError *error; 
       [videoURL getResourceValue:&videoDiskFileSize forKey:NSURLFileSizeKey error:&error]; 

       if(error){ 
        NSLog(@"ERROR %@", error.localizedDescription); 
       } 

       NSLog(@"size is %f",[videoDiskFileSize floatValue]/(1024.0*1024.0)); 
      }]; 

답변

0

올바른 방법은 다음과 같습니다.

PHVideoRequestOptions *options = [[PHVideoRequestOptions alloc] init]; 
      options.version = PHVideoRequestOptionsVersionOriginal; 

      [[PHImageManager defaultManager] requestExportSessionForVideo:asset options:options exportPreset:AVAssetExportPresetHighestQuality resultHandler:^(AVAssetExportSession *exportSession, NSDictionary *info) { 
       CMTime videoDuration = CMTimeMultiplyByFloat64(exportSession.asset.duration, 1); 
       exportSession.timeRange = CMTimeRangeMake(kCMTimeZero, videoDuration); 
       NSLog(@"Byyte size = %lld", exportSession.estimatedOutputFileLength); 

       videoSize = exportSession.estimatedOutputFileLength; 
      }];