Как сохранить видео с AVAssetExportSession в Camera Roll?

У меня есть код, который редактирует видео, а затем создает AVAssetExportSession для сохранения отредактированного видео где-то. Я хотел бы сохранить его в рулоне камеры, но не могу понять, что такое NSURL.

var session: AVAssetExportSession = AVAssetExportSession(asset: myasset, presetName: AVAssetExportPresetHighestQuality) session.outputURL = ??? session.exportAsynchronouslyWithCompletionHandler(nil) 

Кто-нибудь знает, как определить правильный NSURL для сохранения видео в рулоне камеры? Заранее спасибо за вашу помощь.

2 Solutions collect form web for “Как сохранить видео с AVAssetExportSession в Camera Roll?”

Вы не можете сохранить свое видео прямо в кадре камеры, просто используя session.outputURL = ... Вам нужно будет сохранить видео в пути к файлу (временному или другому), а затем записать видео по этому URL-адресу в ваш рулон камеры, используя writeVideoAtPathToSavedPhotosAlbum: например:

 var exportPath: NSString = NSTemporaryDirectory().stringByAppendingFormat("/video.mov") var exportUrl: NSURL = NSURL.fileURLWithPath(exportPath)! var exporter = AVAssetExportSession(asset: myasset, presetName: AVAssetExportPresetHighestQuality) exporter.outputURL = exportUrl exporter.exportAsynchronouslyWithCompletionHandler({ let library = ALAssetsLibrary() library.writeVideoAtPathToSavedPhotosAlbum(exportURL, completionBlock: { (assetURL:NSURL!, error:NSError?) -> Void in // ... }) }) 

Ниже приведен очищенный ответ для Swift 3, который теперь сохраняется в альбоме через фреймворк.

Для этого вам нужно будет импортировать как AVFoundation и Photos .

 func exportAsset(asset: AVAsset) { let exportPath = NSTemporaryDirectory().appendingFormat("/video.mov") let exportURL = URL(fileURLWithPath: exportPath) let exporter = AVAssetExportSession(asset: asset, presetName: AVAssetExportPresetHighestQuality) exporter?.outputURL = exportURL exporter?.exportAsynchronously(completionHandler: { PHPhotoLibrary.shared().performChanges({ PHAssetChangeRequest.creationRequestForAssetFromVideo(atFileURL: exportURL) }) { saved, error in if saved { print("Saved") } } }) } 
  • Воспроизведение композиции по определенному индексу MPMediaItemCollection в Swift
  • Ошибка UICollectionView с использованием Swift
  • Как установить минимальную и максимальную оси x с помощью iOS-диаграмм
  • SDK Paypal iOS возвращает мне ошибку и разбивает мое приложение
  • Массив из словарных клавиш в быстрых
  • Как рассчитать высоту строки?
  • Добавить UICollectionView в UICollectionViewCell
  • Все содержимое UIWebView встроено в UITableView
  • Можно ли использовать NSURLSessionUploadTask для задач автономной синхронизации?
  • Создание UITableViewCell программно в Swift
  • Не удается получить ячейку cellForRowAtIndexPath
  • Interesting Posts

    Google Maps SDK iOS – Пользовательское окно информации о марке с помощью UIButton

    Как сохранить содержимое UIWebView в качестве изображения

    iPhone – Какой правильный аудиоплеер для моего приложения?

    Проблема при загрузке приложения в Apple Store из-за ipv6

    Как создать инфраструктуру iOS со слабосвязанными библиотеками CocoaPods

    выполнитьSelectorOnMainThread с несколькими параметрами

    UIView animateWithDuration слишком быстро

    iOS: добавление UITapGestureRecognizer в представление контейнера перехватывает метод didSelectItemAtIndexPath UICollectionView

    Как сделать флип-анимацию между двумя UIViewControllers при нажатии кнопки информации?

    Совместное использование стека основных данных и данных между приложениями и расширениями в iOS8

    iOS Bottleneck: глобальная переменная или основные данные или списки свойств

    Установить свойство текста UITextField в prepareForSegue

    Увольнение ViewController показано как Popover segue изнутри другого Popover

    Как передать текст / фотографии / видео в Instagram в ios

    MagicalRecord с примером UITableView

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.