2015-10-01 25 views
8

Saklanan görüntü ve video dosyalarını şu numaradan iletiyorum: PHLivePhoto.requestLivePhotoWithResourceFileURLs ve PHLivePhotoView'da görüntüleyebileceğim bir PHLivePhoto nesnesi alıyorum. Ama merak ediyorum, bir kez PHLivePhoto'um var, bunu Fotoğraf Kütüphanesine kaydetmenin bir yolu var mı?Bir Fotoğrafı Fotoğraf Kütüphanesine kaydetmek için bir yol var mı?

+0

. Dokümantasyonda "Bunun yerine bir Fotoğrafı Fotoğraflar kitaplığına içe aktarmak için PHAssetCreationRequest sınıfını kullanın." Ancak, creationRequestForAsset yöntemi bir PHLivePhoto uygulamasına sahip görünmüyor. https://developer.apple.com/library/prerelease/ios/documentation/Photos/Reference/PHAssetCreationRequest_Class/index.html#//apple_ref/occ/clm/PHAssetCreationRequest/creationRequestForAsset – Landon

cevap

13
NSURL *photoURL = ...; 
    NSURL *videoURL = ...; 

    [[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{ 
      PHAssetCreationRequest *request = [PHAssetCreationRequest creationRequestForAsset]; 


      //These types should be inferred from your files 

      //PHAssetResourceCreationOptions *photoOptions = [[PHAssetResourceCreationOptions alloc] init]; 
      //photoOptions.uniformTypeIdentifier = @"public.jpeg"; 

      //PHAssetResourceCreationOptions *videoOptions = [[PHAssetResourceCreationOptions alloc] init]; 
      //videoOptions.uniformTypeIdentifier = @"com.apple.quicktime-movie"; 

      [request addResourceWithType:PHAssetResourceTypePhoto fileURL:photoURL options:nil /*photoOptions*/]; 
      [request addResourceWithType:PHAssetResourceTypePairedVideo fileURL:videoURL options:nil /*videoOptions*/]; 

     } completionHandler:^(BOOL success, NSError * _Nullable error) { 
      NSLog(@"success? %d, error: %@",success,error); 
     }]; 
+0

Awesome! Dün gece çalışmayı denediğimde addResourceWithType'a ulaştım ve PHAssetResourceTypeLivePhoto olması bekleniyordu. Ben olmasaydım, bir şeyleri özlediğimi anladım. Pairedvideo türünde tamamen parladı ... – Landon

5

Swift 3: Ben aynı şeyi merak ediyorum

PHPhotoLibrary.shared().performChanges({ 

     let request = PHAssetCreationRequest.forAsset() 

     request.addResource(with: .photo, fileURL: photoURL, options: nil) 
     request.addResource(with: .pairedVideo, fileURL: videoURL, options: nil) 

    }) { (success, error) in 

     print(success) 
     print(error?.localizedDescription ?? "error") 
    } 
+0

Bir dosya kullanmak yerine Veri ile veri eklemek de mümkündür. Ayrıca, "yazdır (hata"), çalışsa bile her zaman bir şey yazdıracaktır. Bu örnek için teşekkürler. –