2017-07-18 8 views
3

HTTP経由でリモートサーバー(無人機)からビデオファイルをインポートするアプリケーションを作成しています。ファイルをローカルストレージ(/Documents/video)にダウンロードした後、PHAssetChangeRequest.FromVideoを使用してPHPhotLibraryのカスタムアルバムにインポートします。PHAssetChangeRequest.FromVideoを使用するとビデオファイルが重複しないようにする方法

私はビデオをインポートすることができ、シミュレータのフォトアプリにアクセスすると、ビデオは正しいアルバムに表示されます。ただし、アルバムから削除すると、そのファイルは自分のアプリ/Documents/videoフォルダから削除されません。

PHAssetChangeRequest.FromVideoを使用してファイルをインポートした後、/Documents/videoからファイルを削除しようとしましたが、ビデオがPhotosアプリケーションから消えてしまいました。

ビデオファイルのコピーが1つだけ、確実に共有フォトギャラリーに保存されるようにするにはどうすればよいですか?ファイルが削除されたことを検出して、/Documents/videoフォルダから削除できますか?それとも、アプリが起動するたびに私の自己を「同期」する必要がありますか?

答えて

0

は、私はあなたが

NSString *outputPath = [NSTemporaryDirectory() stringByAppendingPathComponent:@"output.mov"];

のような一時ディレクトリにダウンロードしたビデオを保存するべきだと思います。そして、あなたは写真アプリにそれを保存することができます。

一時ディレクトリにそれを保存することの利点は、必要なときにいつでも好きなときにOSが自動的に明確なそれはしかし、あなたは手動であなたは後に一時データを削除することができますあなたのケースでは、以下のクラスメソッド

+ (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アプリに保存します。