Как сохранить видео в ролике камеры и получить 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

Другие вопросы по тегам