Я разрабатываю приложение с функцией захвата экрана.
ReplayKit довольно прост и работает очень хорошо, но пока я много раз тестировал его при записи, он внезапно терпел неудачу при записи.
Когда он терпит неудачу, он просто показывает пустое черное видео в окне предварительного просмотра. Ни сбоя, ни сообщения об ошибке.
У меня были сомнения по поводу моего собственного кода (хотя реализация ReplayKit очень проста), поэтому я попробовал с помощью простого образца кода отсюда https://code.tutsplus.com/tutorials/ios-9-an-introduction-to-replaykit-cms-25458 и обнаружил, что проблема все еще возникает.
Я нашел эти вопросы и ответы и попытался отбросить записи перед тем, как начать новую, но это не сработало. https://forums.developer.apple.com/thread/24613.
Я также обнаружил, что, хотя запись не удается с первой попытки (я имею в виду сразу после запуска приложения), она преуспевает со второй попытки.
Итак, я предполагаю, что в моей системе закончился своего рода общесистемный ресурс, и очистка для этого происходит только после записи или чего-то в этом роде, но я не знаю, чтобы исследовать детали, потому что ReplayKit настолько закрыт и предоставляет только очень ограниченный доступ к его данным.
Единственное, что я сделал нерегулярно, это то, что я провел эксперимент по получению видеоданных напрямую с помощью этого кода. Я делал это много раз, поэтому, если в этом коде есть проблема, влияние может быть большим.
[[RPScreenRecorder sharedRecorder] stopRecordingWithHandler:^(RPPreviewViewController * _Nullable previewViewController, NSError * _Nullable error) {
NSURL* screenCaptureVideoURL = [previewViewController valueForKey:@"movieURL"];
[self saveCaptureVideoToCameraRoll:screenCaptureVideoURL]; // My own routine to save the video to camera roll
}];
Есть ли еще кто-нибудь, кто сталкивается с такой же проблемой? Какое-нибудь решение?
Любая информация приветствуется. Спасибо.