2016-10-05 6 views
2

私のアプリケーションでは、ビデオを選択して圧縮した後、システムによって2つのファイルが作成されます。別のファイルを選択すると、再び複製されます。これは私の記憶空間を増やしています。今、システムからファイルの圧縮バージョンを削除したかったのです。誰でもこのことを手伝ってもらえますか?iOSでアップロードした動画を削除するには?

これは

#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:^{ 
    }]; 
} 

私ImagePickerControllerデリゲートであると私が得るvideoURLは

ファイルです:///ユーザ/ webwerks /ライブラリ/開発/ CoreSimulator /デバイス/ 17B6B1EB-8015-4747-81B0 -6FB07F713471 /データ/コンテナ/データ/アプリケーション/ 18A3DB9A-78CE-4761-A4EB-B35CBFCEF1C5を/ tmp/trim.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]; 

    } 
} 

このコードでは、ビデオをパスから削除しても、写真アプリでもう1つのビデオファイルが得られます。これは、動画をアップロードするたびにファイルを継続的に生成します。今度は、写真に重複したファイルを作成しないか、アップロード後に削除する必要がありました。

+0

ビデオを選択して圧縮するためのコードをここに追加できますか?だから私たちはあなたを助ける方法を理解することができます。 – ramacode

+0

実際には、UIImagePickerControllerDelegateを実装しています。デフォルトでは、ビデオファイルを圧縮して保存します。 –

+0

いいえ、デフォルトでは、UIImagePickerControllerはビデオファイルhttps://developer.apple.com/reference/uikit/uiimagepickercontrollerdelegate/1658409-editing_information_keysを圧縮しません。あなたの質問にあなたのコードを載せる方が良いですから、私は物事を推測するだけではありません。 (あなたは質問にあなたのコードを追加するためにeditを押すことができます)。 – ramacode

答えて

2

UISaveVideoAtPathToSavedPhotosAlbumを使用する必要はありません。それは、ビデオファイルが複製されるようにします。

if (UIVideoAtPathIsCompatibleWithSavedPhotosAlbum (moviePath)) { 
    NSURL *videoURL = [info objectForKey:UIImagePickerControllerMediaURL]; 
    isVideoShooted =NO; 
    [self navigateToPostAdViewWithURL:videoURL]; 
} 
関連する問題