AVCaptureFileOutputDelegate
AVCaptureFileOutputDelegate
протокол определяет интерфейс для делегатовAVCaptureFileOutput
возразите, чтобы контролировать и управлять записями вдоль точных демонстрационных границ.
Наследование
Не применимый
Оператор импорта
Swift
import AVFoundation
Objective C
@import AVFoundation;
Доступность
Доступный в OS X v10.7 и позже.
-
captureOutputShouldProvideSampleAccurateRecordingStart (_:) - captureOutputShouldProvideSampleAccurateRecordingStart:
ТребуемыйПозволяет клиенту выбирать в структурировать точную запись в
captureOutput:didOutputSampleBuffer:fromConnection:
. (требуемый)Объявление
Swift
func captureOutputShouldProvideSampleAccurateRecordingStart(_
captureOutput
: AVCaptureOutput!) -> BoolObjective C
- (BOOL)captureOutputShouldProvideSampleAccurateRecordingStart:(AVCaptureOutput *)
captureOutput
Параметры
captureOutput
Файл получения вывел экземпляр, связанный с делегатом.
Возвращаемое значение
YES
true
если требуется кадр точная запись; иначеNO
false
.Обсуждение
В приложениях, соединенных перед Пумой OS X, делегаты, реализующие
captureOutput:didOutputSampleBuffer:fromConnection:
метод может гарантировать, что запуск и остановка записи являются кадром, точным путем вызоваstartRecordingToOutputFileURL:recordingDelegate:
илиstopRecording
из обратного вызова. Точная запись кадра требует, чтобы вывод получения применил outputSettings, когда сеанс начинает работать, таким образом, это готово запустить и/или прекратить записывать на любой данной границе кадра. Применение настроек сжатия для всей длины сеанса имеет питание, тепловое, и импликации CPU.В приложениях, соединенных на или после Пумы OS X, делегаты должны реализовать этот метод, чтобы указать, требуется ли кадр точная запись. Файл получения вывел, вызывает этот метод только один раз, когда делегат добавляется и никогда снова. Если возвращается Ваш делегат
NO
false
, вывод файла получения применяет настройки сжатия только когдаstartRecordingToOutputFileURL:recordingDelegate:
вызывается и отключает эти настройки, как только останавливается запись.Оператор импорта
Objective C
@import AVFoundation;
Swift
import AVFoundation
Доступность
Доступный в OS X v10.8 и позже.
-
captureOutput (_: didOutputSampleBuffer:fromConnection:) - captureOutput:didOutputSampleBuffer:fromConnection:
Дает делегату возможность проверить выборки, поскольку они получены выводом и запускают и прекращают записывать в точные времена.
Объявление
Swift
optional func captureOutput(_
captureOutput
: AVCaptureFileOutput!, didOutputSampleBuffersampleBuffer
: CMSampleBuffer!, fromConnectionconnection
: AVCaptureConnection!)Objective C
- (void)captureOutput:(AVCaptureFileOutput *)
captureOutput
didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer
fromConnection:(AVCaptureConnection *)connection
Параметры
captureOutput
Вывод файла получения, получающий данные носителей.
sampleBuffer
A
CMSampleBuffer
объект, содержащий демонстрационные данные и дополнительную информацию о выборке, такой как ее формат и время представления.connection
AVCaptureConnection
объект присоединил к выводу файла, из которого были получены демонстрационные данные.Обсуждение
Этот метод вызывают каждый раз, когда вывод файла получает единственный демонстрационный буфер (единственный видеокадр или аудио буфер, например) от данного соединения. Это дает делегатам возможность запустить и прекратить записать или изменять выходные файлы на точной демонстрационной границе. Если вызвано из этого метода, вывод файла
startRecordingToOutputFileURL:recordingDelegate:
иresumeRecording
методы, как гарантируют, будут включать полученный демонстрационный буфер в новый файл, тогда как вызовы кstopRecording
иpauseRecording
как гарантируют, будут включать все демонстрационное продвижение до тех в текущем демонстрационном буфере в существующем файле.Можно собрать информацию, определенную к выборкам путем проверки
CMSampleBuffer
объект. Демонстрационные буферы всегда содержат единственный кадр видео, если вызвано от этого метода, но могут также содержать многократные выборки аудио. Для форматов видео B-кадра выборки всегда поставляются в порядке представления.Если необходимо сослаться
CMSampleBuffer
объект за пределами объема этого метода, необходимо сохранить его и затем выпустить его, когда Вы закончили с ним.Для поддержания оптимальной производительности некоторая выборка буферизует непосредственно ссылочные пулы памяти, которая, возможно, должна быть снова использована системой устройства и другими вводами получения. Это часто имеет место для несжатого собственного получения устройства, где блоки памяти копируются как можно меньше. Если многократные демонстрационные буферы сошлются на такие пулы памяти слишком долго, то вводы больше не будут в состоянии скопировать новые выборки в память, и те выборки будут отброшены. Если Ваше приложение заставляет выборки быть отброшенными путем сохранения предоставленного
CMSampleBuffer
объекты слишком долго, но этому нужен доступ к демонстрационным данным в течение длительного периода времени, рассмотрите копирование данных в новый буфер и затем вызовCFRelease
на демонстрационном буфере (если это было ранее сохранено) так, чтобы память это сослалось, может быть снова использован.Вы не должны предполагать, что этот метод вызовут на определенном потоке. Кроме того, этот метод часто вызывают, таким образом, должно быть эффективно предотвратить проблемы производительности получения.
Оператор импорта
Objective C
@import AVFoundation;
Swift
import AVFoundation
Доступность
Доступный в OS X v10.7 и позже.