URL eines neu erstellten Assets im iOS 9-Stil abrufen
ALAssetsLibrary
ist heutzutage veraltet, aber praktisch alle Beispiele auf SO machen immer noch davon Gebrauch. Für mein Ziel muss ich die URL des Videos kennen, das zur Fotobibliothek hinzugefügt wurde, damit ich ein Video für die Instagram-App freigeben kann (nur so akzeptiert Instagram Videos). Die URL sollte wahrscheinlich mit "assets-library: // ..." @ beginne
Dies ist einfach mitALAssetsLibrary
:
ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
[library writeVideoAtPathToSavedPhotosAlbum:videoFilePath completionBlock:^(NSURL *assetURL, NSError *error) { // ...
Oben wird die URL als Argument an den Vervollständigungsblock übergeben. Aber was ist mit iOS 9 kompatibel mitPHPhotoLibrary
Klasse undperformChanges
Methode
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?
}
})