Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/44.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone iOS:如何防止临时文件的可见性_Iphone_Ios_Ipad_Ios5_Ios6 - Fatal编程技术网

Iphone iOS:如何防止临时文件的可见性

Iphone iOS:如何防止临时文件的可见性,iphone,ios,ipad,ios5,ios6,Iphone,Ios,Ipad,Ios5,Ios6,我正在开发一个从静止图像生成临时视频的应用程序。但是我不希望用户查看我生成的临时文件。但是,当应用程序生成视频文件时,视频会被摄像机滚动显示出来 我的问题是如何生成无法访问“照相/摄像机、iTunes和iCloud”的临时媒体文件 请帮帮我。提前谢谢 代码: 您应该使用NSTemporaryDirectory()并在任何临时文件的末尾附加您自己的词缀。该目录中的文件将由操作系统清理,或者您可以在完成后立即删除。您应该使用NSTemporaryDirectory()并在任何临时文件的末尾附加您自己

我正在开发一个从静止图像生成临时视频的应用程序。但是我不希望用户查看我生成的临时文件。但是,当应用程序生成视频文件时,视频会被摄像机滚动显示出来

我的问题是如何生成无法访问“照相/摄像机、iTunes和iCloud”的临时媒体文件

请帮帮我。提前谢谢

代码:


您应该使用
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调用,则相机卷中不会出现任何内容。或者您的问题是视频会在您开始创建时立即出现,而不是在您完成之后?