Запись видео с экрана в Mac OS X

Я работаю с AVFoundation для записи экрана или части экрана. Вот 2 примера кода, над которыми я работаю.

1. http://developer.apple.com/library/mac/#samplecode/AVScreenShack/Listings/AVScreenShack_AVScreenShackDocument_m.html

2. http://developer.apple.com/library/mac/#qa/qa1740/_index.html

Простая полноэкранная запись или запись с обрезкой прямоугольника отлично, но когда я пытаюсь изменить прямоугольник во время записи, я получаю сообщение об ошибке:

Завершена ли запись в файл: //localhost/Users/Shared/screenMovie.mp4 из-за ошибки Error Domain = AVFoundationErrorDomain Code = -11806 «Запись остановлена» UserInfo = 0x13a07f9e0 {AVErrorRecordingSuccessfullyFinishedKey = true, NSLocalizedDescription = Recording снова .}

В документации Apple говорится об ошибке с кодом -11806:

AVErrorSessionConfigurationChanged Запись остановлена ​​из-за изменения конфигурации источников и мест назначения мультимедиа.

Я не могу найти информацию об этом в документации. У меня есть предположение, что я не могу изменить прямоугольник во время записи. Но в то же время я не могу найти на это никаких доказательств.


person Kirill Simakov    schedule 26.02.2013    source источник
comment
Я просто пытаюсь изменить координаты начала координат, а не размер прямоугольника. Думаю, это может помочь. Вот мой код для изменения координат кадра записи: pastebin.com/XGaTM55f   -  person Kirill Simakov    schedule 27.02.2013


Ответы (1)


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

- (void)captureOutput:(AVCaptureFileOutput *)captureOutput didFinishRecordingToOutputFileAtURL:(NSURL *)outputFileURL fromConnections:(NSArray *)connections error:(NSError *)error {

// Check for error
// If an error occurred and AVErrorRecordingSuccessfullyFinishedKey is YES, then
// start recording to a new file here

}
person Marcel    schedule 19.04.2013
comment
но когда вы перетаскиваете окно, оно будет создавать около 10-15 файлов в секунду - и все они будут повреждены. Я просто отключаю опцию перетаскивания. - person Kirill Simakov; 19.04.2013