如何获取视频 PHAsset 磁盘文件大小?
Posted
技术标签:
【中文标题】如何获取视频 PHAsset 磁盘文件大小?【英文标题】:How to get a video PHAsset disk file size? 【发布时间】:2016-08-06 08:25:14 【问题描述】:我正在尝试确定 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));
];
【问题讨论】:
【参考方案1】:这是正确的做法。
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;
];
【讨论】:
出口是个坏主意以上是关于如何获取视频 PHAsset 磁盘文件大小?的主要内容,如果未能解决你的问题,请参考以下文章
从 PHAsset 获取视频时如何检测视频是不是为横向/纵向?