Iphone iOS:如何防止临时文件的可见性
我正在开发一个从静止图像生成临时视频的应用程序。但是我不希望用户查看我生成的临时文件。但是,当应用程序生成视频文件时,视频会被摄像机滚动显示出来 我的问题是如何生成无法访问“照相/摄像机、iTunes和iCloud”的临时媒体文件 请帮帮我。提前谢谢 代码:Iphone iOS:如何防止临时文件的可见性,iphone,ios,ipad,ios5,ios6,Iphone,Ios,Ipad,Ios5,Ios6,我正在开发一个从静止图像生成临时视频的应用程序。但是我不希望用户查看我生成的临时文件。但是,当应用程序生成视频文件时,视频会被摄像机滚动显示出来 我的问题是如何生成无法访问“照相/摄像机、iTunes和iCloud”的临时媒体文件 请帮帮我。提前谢谢 代码: 您应该使用NSTemporaryDirectory()并在任何临时文件的末尾附加您自己的词缀。该目录中的文件将由操作系统清理,或者您可以在完成后立即删除。您应该使用NSTemporaryDirectory()并在任何临时文件的末尾附加您自己
您应该使用
NSTemporaryDirectory()
并在任何临时文件的末尾附加您自己的词缀。该目录中的文件将由操作系统清理,或者您可以在完成后立即删除。您应该使用NSTemporaryDirectory()
并在任何临时文件的末尾附加您自己的词缀。该目录中的文件将由操作系统清理,或者您可以在完成后立即删除。此块:
[assetWriter finishWritingWithCompletionHandler:^
{
NSURL *url = _outMovieURL; ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
[library writeVideoAtPathToSavedPhotosAlbum:url
completionBlock:^(NSURL *assetURL, NSError *error)
{
NSLog(@"Done!");
}];
}];
就是把文件写在相机的胶卷里。因此,当您只创建了临时视频时,不要使用此选项。将该临时视频文件写入documentDirectory
(或者它可能已经在documentDirectory
中,当您创建它时,您所需要做的就是不要将该文件写入带有此代码的照相/摄像机卷中)。此块:
[assetWriter finishWritingWithCompletionHandler:^
{
NSURL *url = _outMovieURL; ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
[library writeVideoAtPathToSavedPhotosAlbum:url
completionBlock:^(NSURL *assetURL, NSError *error)
{
NSLog(@"Done!");
}];
}];
就是把文件写在相机的胶卷里。因此,当您只创建了临时视频时,不要使用此选项。将临时视频文件写入
documentDirectory
(或者它可能已经在documentDirectory
中,当您创建它时,您所需要做的就是不要将该文件写入带有此代码的照相/摄像机卷)。您要写入哪个目录?如果你写信给摄像机,那它就在你要去的地方。如果写入临时目录,则不会出现此问题。NSArray*path=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);NSString*documentsDirectory=[paths objectAtIndex:0];NSString*path=[DocumentsDirectoryStringByAppendingPathComponent:@“MyFirstDownloadmp4.mp4”];我正在使用上面的代码创建URL,您正在写入哪个目录?如果你写信给摄像机,那它就在你要去的地方。如果写入临时目录,则不会出现此问题。NSArray*path=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);NSString*documentsDirectory=[paths objectAtIndex:0];NSString*path=[DocumentsDirectoryStringByAppendingPathComponent:@“MyFirstDownloadmp4.mp4”];我正在使用上面的代码创建urlpath=[NSString stringWithFormat:@“%@/%llu.mov”、NSTemporaryDirectory()、mach_absolute_time()];我已经试过了,但视频在摄像机中是可见的roll@user1713827这是极不可能的,您能在实际使用生成的路径的地方发布代码吗?或者您是否安装了任何越狱调整,可能会改变相机卷的行为?[assetWriter finishWritingWithCompletionHandler:^{NSURL*url=\u outMovieURL;AlassetLibrary*library=[[AlassetLibrary alloc]init];[library writeVideoAtPathToSavedPhotosAlbum:url completionBlock:^(NSURL*assetURL,NSError*error){NSLog(@“完成!”;}];}]
@user1713827我假设您正在使用_outMovieURL对AVAssetWriter进行初始化?如果您在完成块中不使用AlassetLibrary调用,则不会在摄影机卷中结束任何操作。或者您的问题是,视频会在您开始创建时立即显示,而不是在您完成所有操作之后?path=[NSString stringWithFormat:@“%@/%llu.mov”,NSTemporaryDirectory(),mach_absolute_time();我尝试过这个,但视频在相机中可见roll@user1713827这是极不可能的,你能将代码张贴在你实际使用生成的路径的地方吗?或者你是否安装了任何越狱调整,可能会改变相机滚动的行为?[assetWriter使用CompletionHandler完成写入:^{NSURL*url=\u outMovieURL;AlassetLibrary*library=[[AlassetLibrary alloc]init];[library writeVideoAtPathToSavedPhotosAlbum:url completionBlock:^(NSURL*assetURL,NSError*错误){NSLog(@“完成!”;}];}]
@user1713827我假设您正在使用_outMovieURL对AVAssetWriter进行初始化,对吗?如果您在完成块中不使用AlassetLibrary调用,则相机卷中不会出现任何内容。或者您的问题是视频会在您开始创建时立即出现,而不是在您完成之后?