Я использую AVCaptureFileOutputRecordingDelegate - didFinishRecordingToOutputFileAt в пользовательском интерфейсе камеры, но я не хочу переходить на этот метод, потому что видео сохраняется после завершения записи. По устаревшим причинам я не могу сохранить видео локально, затем взять его в статическом экземпляре и удалить из локального. Как я могу это сделать ?
Записывайте видео с пользовательским интерфейсом камеры, но не сохраняйте
comment
После ответа Bluewings я попытался сделать видео из массива UIImages (на примере этого поста: stackoverflow.com/questions/40788480/), который я взял из метод captureOutput(_ CaptureOutput: AVCaptureOutput!, didOutputSampleBuffer sampleBuffer: CMSampleBuffer!, from connection: AVCaptureConnection!), но он всегда сохраняет видео во временной папке, а затем удаляет его. Как я могу создать видео из [UIImage], не сохраняя его во временной папке?
- person Ridney   schedule 26.07.2017
Ответы (1)
AVFoundation
framework имеет только следующие выходные данные для сеанса захвата.
AVCaptureMovieFileOutput
- для записи и вывода файла фильмаAVCaptureVideoDataOutput
- обрабатывать кадры из захватываемого видеоAVCaptureAudioDataOuput
- обрабатывать записываемые аудиоданныеAVCaptureStillImageOutput
- для захвата вывода неподвижного изображения
Так как вы не хотите сохранять записанное видео в файл. Другим лучшим вариантом было бы использование AVCaptureVideoDataOutput
и получение каждого кадра в непрерывной записи видео и создание видео из буфера изображения. Чтобы сделать заметку, в этом случае у вас не будет аудиовыхода. Опять же, мы можем добавить AVCaptureAudioDataOuput
и встроить аудио отдельно в наше записанное видео. Но этот обходной путь не будет работать для более высокой частоты кадров. Поэтому лучше всего сохранить видео во временную папку и удалить его позже.
person
Bluewings
schedule
26.07.2017
Большое спасибо за этот ответ.
- person Ridney; 26.07.2017