有一种方法可以在录制视频时,如果设备存储空间几乎已满,我会收到通知。
我发现你可以设置maxRecordedFileSize
如果我使用AVCaptureMovieFileOutput
录制的,但不幸的是我无法使用它,因为在视频帧存储在视频文件中之前我必须进行一些视频处理。
相反,我必须使用AVCaptureVideoDataOutput
和AVAssetWriter
的方法。
是否可以观察存储已满时通知的某种系统通知?
答案 0 :(得分:1)
您可以使用以下代码获取磁盘中的可用空间
-(uint64_t)getFreeDiskspace{
uint64_t totalSpace = 0.0f;
uint64_t totalFreeSpace = 0.0f;
NSError *error = nil;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSDictionary *dictionary = [[NSFileManager defaultManager] attributesOfFileSystemForPath:[paths lastObject] error: &error];
if (dictionary) {
NSNumber *fileSystemSizeInBytes = [dictionary objectForKey: NSFileSystemSize];
NSNumber *freeFileSystemSizeInBytes = [dictionary objectForKey:NSFileSystemFreeSize];
totalSpace = [fileSystemSizeInBytes floatValue];
totalFreeSpace = [freeFileSystemSizeInBytes floatValue];
NSLog(@"Memory Capacity of %llu MiB with %llu MiB Free memory available.", ((totalSpace/1024ll)/1024ll), ((totalFreeSpace/1024ll)/1024ll));
} else {
NSLog(@"Error Obtaining System Memory Info: Domain = %@, Code = %@", [error domain], [error description]);
}
return totalFreeSpace;
}
你可以查看
if([self getFreeDiskspace]>100.0){
//The store
}else{
//Alert user
}
希望它有所帮助。