UIImagePickerControllerからビデオを保存します
-
20-09-2019 - |
質問
私のアプリケーションでは、ユーザーは、UIImagePickerControllerを使用してビデオを録画することができ、私は後で使用するためにディスクに保存する必要があります。私は情報の辞書の外にパスを得ていると私は私のドキュメントディレクトリに保存するつもりですが、私がいる問題は、辞書に渡されたURLは、そういうことだということです - URLではなく、ファイルのパス。私はabsoluteStringを使用して文字列に変換し、私のファイルマネージャへのソースパスとしてこれを渡すと、それはソースファイルが見つかりませんでしたと言って失敗します。
古いパス:ファイル://localhost/private/var/mobile/Applications/77B4D2B8-DE12-4643-82F0-2ECC948E4DBC/tmp/capture/capturedvideo.MOV
新しいパス:/var/mobile/Applications/77B4D2B8-DE12-4643-82F0-2ECC948E4DBC/Documents/video1.mov
ファイルマネージャが処理できる何かに私のURLを変換する簡単な方法があるように持っています。私はちょうど私が右の周りにそれらを維持したい場合、彼らはドキュメントディレクトリに保存する必要があり、tmpディレクトリにすべてのビデオを残すことはできません?
推測していますまた、これは実際には関係ありませんが、どのように私はテーブルビューに表示すること、ビデオのサムネイルを取得するのでしょうか?
解決
ファイルマネージャが処理できる何かに私のURLを変換する簡単な方法があるように持っています。
あなたは正しいです - はそこにの簡単な方法ですが、それは単にドキュメントに埋もれています:
NSString *myPath = [myUrl path];
path
メソッドのドキュメントから:
戻り値
URLのパス。受信機は、RFC 1808に準拠していない場合は、nilを返します。 isFileURLがYESを返す場合の、戻り値はNSFileManager又はNSPathUtilitiesに入力するのに適している。のパスは、それが剥離される末尾のスラッシュた場合。
他のヒント
NSData *imageData = [NSData dataWithContentsOfURL:[info objectForKey:@"UIImagePickerControllerMediaURL"]];
NSString *tempPath = [NSString stringWithFormat:@"%@/Documents/%@.mp4",NSHomeDirectory(),dateStr];
[imageData writeToFile:tempPath atomically:NO];