2012-05-02 60 views
3

是否可以拍攝嵌入在應用程序中的視頻並將其保存到相機膠捲上?如果是這樣,怎麼樣?這是相同的UIWriteImage的東西?將應用內視頻保存到相機膠捲?

+0

@EmilioPelaez我知道怎麼寫的相機膠捲是UIImageWriteToSavedPhotosAlbum的唯一的事,但只適用於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或更高,使用PHPhotoLibraryALAssetsLibrary已棄用。

包括:

@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'​​ 我得到這個錯誤:''操作無法完成。(Cocoa error -1。)'對於'localizedDescription'的Error對象。 – manonthemoon

相關問題