Получить URL-адрес недавно созданного ресурса в стиле iOS 9
ALAssetsLibrary
в наши дни устарела, но практически все примеры на SO все еще используют его. Для моей цели мне нужно знать URL видео, которое было добавлено в библиотеку фотографий, чтобы я мог поделиться видео с приложением Instagram (это единственный способ, которым Instagram принимает видео). URL должен начинаться с "assets-library: // ..."
Это просто сALAssetsLibrary
:
ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
[library writeVideoAtPathToSavedPhotosAlbum:videoFilePath completionBlock:^(NSURL *assetURL, NSError *error) { // ...
Выше URL передается в качестве аргумента блоку завершения. Но как насчет iOS 9 совместимый способPHPhotoLibrary
класс иperformChanges
метод?
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?
}
})