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ı?
cevap
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);
}];
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
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")
}
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. –
. 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