Как сохранить видео в ролике камеры и получить URL ресурса?
Мне нужно экспортировать видео из моего приложения для iOS и получить идентификатор ресурса. В прошлом вы можете использовать ALAssetsLibrary:
сохранить изображение в фотопленке и получить URL ресурса
Но это устарело сейчас. Интересно, каким будет новый способ достижения этого сейчас? Спасибо!
1 ответ
ALAssetsLibrary устарела. Вы должны использовать PhotosLibrary.
Инфраструктура библиотеки активов устарела с iOS 9.0. Вместо этого используйте вместо этого среду Photos, которая в iOS 8.0 и более поздних версиях предоставляет больше возможностей и повышает производительность для работы с библиотекой фотографий пользователя. Для получения дополнительной информации см. Фото. В платформе Photos класс PHPhotoLibrary управляет доступом к библиотеке фотографий и изменениями в ней, а методы классов в классах PHAsset и PHCollection и связанных с ними классах предоставляют функциональные возможности для поиска активов фото и видео.
Смотрите этот https://developer.apple.com/documentation/photos/phphotolibrary
Вот пример кода, который сохраняет видео в рулон камеры и дает вам URL для сохранения видео.
var placeHolder : PHObjectPlaceholder?
PHPhotoLibrary.shared().performChanges({
let creationRequest = PHAssetChangeRequest.creationRequestForAssetFromVideo(atFileURL: URL(string: videoPath)! )
placeHolder = creationRequest?.placeholderForCreatedAsset
}, completionHandler: { (success, error) in
if success {
let result = PHAsset.fetchAssets(withLocalIdentifiers: [placeHolder!.localIdentifier], options: nil)
result.firstObject?.getURL(completionHandler: { url in
// this is the url to the saved asset
})
}
})
не забудь
import Photos
и добавьте этот код как расширение для PHAsset:
https://gist.github.com/jVirus/2f041bb8b1936093773f0bde42af3a49