Ios 如何在使用PhaseSetChangeRequest.FromVideo时避免重复视频文件
我正在编写一个应用程序,通过HTTP从远程服务器(drone)导入视频文件。将文件下载到本地存储器(Ios 如何在使用PhaseSetChangeRequest.FromVideo时避免重复视频文件,ios,xamarin,photokit,Ios,Xamarin,Photokit,我正在编写一个应用程序,通过HTTP从远程服务器(drone)导入视频文件。将文件下载到本地存储器(/Documents/video)后,我使用PHAssetChangeRequest.FromVideo将其导入PHPhotLibrary中的自定义相册 我可以导入视频,在模拟器中访问照片应用程序时,视频会显示在正确的相册中。但是,如果我将其从相册中删除,则该文件不会从我的apps/Documents/video文件夹中删除 然后,在使用PHAssetChangeRequest.FromVideo
/Documents/video
)后,我使用PHAssetChangeRequest.FromVideo
将其导入PHPhotLibrary
中的自定义相册
我可以导入视频,在模拟器中访问照片应用程序时,视频会显示在正确的相册中。但是,如果我将其从相册中删除,则该文件不会从我的apps/Documents/video
文件夹中删除
然后,在使用PHAssetChangeRequest.FromVideo
导入文件后,我尝试从/Documents/video
中删除该文件,但随后视频从照片应用程序中消失
如何确保视频文件只有一个副本,最好存储在共享照片库中?我是否可以检测到文件被删除,以便从
/Documents/video
文件夹中删除它?还是每次应用启动时我都需要“同步”我自己 我认为您应该将下载的视频存储到一个临时目录中,如
NSString*outputPath=[NSTemporaryDirectory()stringByAppendingPathComponent:@“output.mov”]代码>
然后你可以将它存储到照片应用程序中
将其存储到临时目录的好处是,操作系统将在需要时自动清除它,但是您可以通过创建以下类方法随时手动删除它
+ (void)clearTemporaryDirectoryData
{
NSArray* tempDirectory = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:NSTemporaryDirectory() error:NULL];
for (NSString *file in tempDirectory) {
[[NSFileManager defaultManager] removeItemAtPath:[NSString stringWithFormat:@"%@%@", NSTemporaryDirectory(), file] error:NULL];
}
}
在您的情况下,您可以在将下载的视频保存到Photos应用程序后删除临时数据