2016-01-09 2 views
1

Я пытаюсь запретить AVCaptureSession добавлять AVCaptureMovieFileOutput, когда осталось свободного места на диске. Я использую следующий код в viewDidload для тестирования:AVCaptureMovieFileOutput minFreeDiskSpaceLimit не работает

let session = AVCaptureSession() 
session.sessionPreset = AVCaptureSessionPresetHigh 

let movieFileOutput = AVCaptureMovieFileOutput() 
movieFileOutput.minFreeDiskSpaceLimit = 1024 * 1024 * 100 // 100 MB 
movieFileOutput.maxRecordedDuration = CMTimeMakeWithSeconds(45, Int32(NSEC_PER_SEC)) // 45 sec 

if (session.canAddOutput(movieFileOutput)) { 
    print("Output added") 
    session.addOutput(movieFileOutput) 
} else { 
    print("Not enough disk space??") 
} 

Но как-то функция «canAddOutput» всегда возвращает истину. Я тестирую его на реальном устройстве и оставляю только 69,4 МБ пространства. Почему это не возвращает ложь?

ответ

0

Из файла в AVCaptureOutput заголовка, на minFreeDiskSpaceLimit:

Определяет минимальное количество свободного пространства в байтах, необходимый для записи, чтобы продолжить на заданном объеме.

Ошибка сообщается с помощью метода делегата .

Поэтому тот факт, что minFreeDiskSpaceLimit определяет условие продолжал записи и ошибка передается через метод отделки делегата подсказывает мне, что вы должны сначала начать сеанс захвата, чтобы использовать его.

Смежные вопросы