2012-05-02 5 views
3

アプリ内に埋め込まれたビデオをカメラロールに保存することはできますか?もしそうなら、どうですか?それは同じUIWriteImageものですか?カメラロールにアプリ内動画を保存しますか?

+0

私はカメラロールに書く方法を知っている唯一のことはUIImageWriteToSavedPhotosAlbumですが、それが唯一のためである@EmilioPelaez UIImages – user717452

答えて

11

あなたはすでにイメージを保存する方法を知っていると仮定すると、このコードを試みることができる:

-(void) imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { 
NSString *mediaType = [info objectForKey:UIImagePickerControllerMediaType]; 
    if([mediaType isEqualToString:(NSString *)kUTTypeMovie]) { 
     //Save the video 
     NSURL *movieUrl = [info objectForKey:UIImagePickerControllerMediaURL]; 
     UISaveVideoAtPathToSavedPhotosAlbum([movieUrl relativePath], self,@selector(movie:didFinishSavingWithError:contextInfo:), nil); 
    } 
} 

それともあなたは試みることができる:

-(void) imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { 
    if([mediaType isEqualToString:(NSString *)kUTTypeMovie]) { 
    NSURL *movieUrl = [info objectForKey:UIImagePickerControllerMediaURL]; 
    ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init]; 
    [library writeVideoAtPathToSavedPhotosAlbum:movieUrl completionBlock:^(NSURL *assetURL, NSError *error){ 
     if(error) { 
      NSLog(@"CameraViewController: Error on saving movie : %@ {imagePickerController}", error); 
     } 
     else { 
      NSLog(@"URL: %@", assetURL); 
     } 
    }]; 
    } 
} 
2

のiOS 8以上の場合、PHPhotoLibraryを使用しています。 ALAssetsLibraryは推奨されていません。

を含める:

@import PhotosUI; 

そして、ムービーを保存するためにこれを使用する:

[[PHPhotoLibrary sharedPhotoLibrary] performChanges:^ 
{ 
    [PHAssetChangeRequest creationRequestForAssetFromVideoAtFileURL:<%Your Movie URL%>]; 
} 
            completionHandler:^(BOOL success, NSError *error) 
{ 
    if (success) { 
     NSLog(@"Movie saved to camera roll."); 
    } 
    else { 
     NSLog(@"Could not save movie to camera roll. Error: %@", error); 
    } 
}]; 
+0

ヘルプヘルプ...私はとても多くのことを試みました。この回答は最もエレガントだと思われますが、私は実際に自分のデバイス上で動作させることができません。 ムービーのURLについては、UIImagePickerディクショナリの値を渡しています。 'UIImagePickerControllerMediaURL'のようになります。' file:/// private/var/mobile/Containers/Data/Application/A305CE7A-3959-479A-AE61-1BB184C3A679/tmp/83HDFS29__ABAG84H9-AA33-4137-AA2E-BE1JDHFBC41.MOV'​​ このエラーは、エラーオブジェクトの 'localizedDescription'に対して' '操作を完了できませんでした(Cocoaエラー-1)」です。 – manonthemoon

関連する問題