Obtenga la URL de un activo recién creado, estilo iOS 9
ALAssetsLibrary
está en desuso en estos días, pero prácticamente todos los ejemplos en SO todavía lo están utilizando. Para mi objetivo, necesito saber la URL del video que se agregó a la Biblioteca de fotos para poder compartir un video en la aplicación de Instagram (esa es la única forma en que Instagram acepta videos). La URL probablemente debería comenzar con "assets-library: // ..."
Esto es simple conALAssetsLibrary
:
ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
[library writeVideoAtPathToSavedPhotosAlbum:videoFilePath completionBlock:^(NSURL *assetURL, NSError *error) { // ...
Arriba, la URL se pasa como argumento al bloque de finalización. Pero, ¿qué pasa con la forma compatible con iOS 9?PHPhotoLibrary
clase yperformChanges
¿método?
var videoAssetPlaceholder:PHObjectPlaceholder! // property
// ...
let videoURL = NSBundle.mainBundle().URLForResource("Video_.mp4", withExtension: nil)!
let photoLibrary = PHPhotoLibrary.sharedPhotoLibrary()
photoLibrary.performChanges({
let request = PHAssetChangeRequest.creationRequestForAssetFromVideoAtFileURL(videoURL)
self.videoAssetPlaceholder = request?.placeholderForCreatedAsset
},
completionHandler: { success, error in
if success
{
// The URL of the video asset?
}
})