iOS上传后如何删除压缩视频?

Posted

技术标签:

【中文标题】iOS上传后如何删除压缩视频?【英文标题】:How to delete compressed video after upload in iOS? 【发布时间】:2016-10-05 12:34:20 【问题描述】:

在我的应用程序中,当我选择一个视频并对其进行压缩后,系统会创建两个文件。当我选择另一个文件时,它会再次复制它。这增加了我的记忆空间。现在我想从系统中删除压缩版本的文件。谁能帮我做这件事?

这是我的 ImagePickerController 委托

#pragma mark - UIImagePicker delegate


- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info 

    NSString *mediaType = [info objectForKey: UIImagePickerControllerMediaType];

    if (CFStringCompare ((__bridge CFStringRef) mediaType, kUTTypeMovie, 0) == kCFCompareEqualTo) 
        NSURL *videoUrl=(NSURL*)[info objectForKey:UIImagePickerControllerMediaURL];
        NSString *moviePath = [videoUrl path];

        if (UIVideoAtPathIsCompatibleWithSavedPhotosAlbum (moviePath)) 
            UISaveVideoAtPathToSavedPhotosAlbum (moviePath, nil, nil, nil);

            NSURL *videoURL = [info objectForKey:UIImagePickerControllerMediaURL];
            isVideoShooted =NO;
            [self navigateToPostAdViewWithURL:videoURL];


        
    

    [self dismissViewControllerAnimated:YES completion:^
    ];

我得到的videoURL是

file:///Users/webwerks/Library/Developer/CoreSimulator/Devices/17B6B1EB-8015-4747-81B0-6FB07F713471/data/Containers/Data/Application/18A3DB9A-78CE-4761-A4EB-B35CBFCEF1C5/tmp/修剪.A8DC422C-137F-4FF9-878A-E175CE4DDF8F.MOV

当我上传压缩视频时,我正在使用以下代码删除此路径中的文件

+ (void)clearTmpDirectory

    NSArray* tmpDirectory = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:NSTemporaryDirectory() error:NULL];
    for (NSString *file in tmpDirectory) 
        if ([[file pathExtension]isEqualToString:@"MOV"])
            [[NSFileManager defaultManager] removeItemAtPath:[NSString stringWithFormat:@"%@%@", NSTemporaryDirectory(), file] error:NULL];

    

此代码工作正常,它从路径中删除了视频,但我仍然在照片应用程序中获得了另一个视频文件。每次我上传视频时都会不断生成文件。现在我不想在照片中创建重复文件,否则它应该在上传后被删除。

【问题讨论】:

您能在此处添加选择和压缩视频的代码吗?所以我们可以弄清楚如何为您提供帮助。 其实我已经实现了 UIImagePickerControllerDelegate 并且默认它压缩视频文件并存储它 否,默认情况下 UIImagePickerController 不压缩视频文件 developer.apple.com/reference/uikit/… 。最好将代码放在您的问题中,所以我不只是假设事情。 (您可以按编辑在问题中添加您的代码)。 我已经用代码更新了问题 【参考方案1】:

您不必使用UISaveVideoAtPathToSavedPhotosAlbum。它会使视频文件被复制。

if (UIVideoAtPathIsCompatibleWithSavedPhotosAlbum (moviePath)) 
    NSURL *videoURL = [info objectForKey:UIImagePickerControllerMediaURL];
    isVideoShooted =NO;
    [self navigateToPostAdViewWithURL:videoURL];

【讨论】:

以上是关于iOS上传后如何删除压缩视频?的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 youtube API 获取已删除视频的列表

如何在压缩它们后删除 django 迁移?

在 iOS/swift 中上传图像时如何删除裁剪选项

如何从我的 iOS 应用程序中删除推送通知?

如何从 BMPLayer iOS Swift 中删除视频上的暗层?

解压过的解压文件可以删吗?