ALAssetsLibrary
ist in diesen Tagen veraltet, aber praktisch alle Beispiele auf SO nutzen es noch. Für mein Ziel muss ich die URL des Videos wissen, das der Fotobibliothek hinzugefügt wurde, damit ich ein Video mit der Instagram-App teilen kann (nur so akzeptiert Instagram Videos). Die URL sollte wahrscheinlich beginnen mit "Vermögen-Bibliothek: // ..."URL eines neu erstellten Assets abrufen, iOS 9-Stil
Dieses einfach mit ALAssetsLibrary
:
ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
[library writeVideoAtPathToSavedPhotosAlbum:videoFilePath completionBlock:^(NSURL *assetURL, NSError *error) { // ...
oben, wird die URL als Argument für den Abschluss Block übergeben. Aber was ist mit iOS 9 kompatiblen Weg mit PHPhotoLibrary
Klasse und performChanges
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?
}
})
Warum Sie Sie nicht nur lokal Video speichern Sie es vor zu teilen? –
@LeoDabus So wie Videos geteilt werden, kann Instagram kein Video aus der Sandbox meiner App lesen –