#ios #swift #replaykit
#iOS #swift #replaykit
Вопрос:
Я использую replay kit для сохранения видео моего экрана во время игрового процесса, но иногда случайным startRecordingWithMicrophoneEnabled
образом и recorder.stopRecordingWithHandler
никогда не вводит обработчик завершения
он не выдает ошибку, он просто запускается и зависает на неопределенный срок.
if recorder.available amp;amp; recorder.microphoneEnabled {
recorder.startRecordingWithMicrophoneEnabled(true) { [unowned self] (error) in
if let unwrappedError = error {
print(unwrappedError.localizedDescription)
} else {
print("called")
self.manager.instructions.text = "Click to Start Game"
}
}
}
if recorder.available amp;amp; recorder.microphoneEnabled {
print("initiating stop recording")
recorder.stopRecordingWithHandler { [unowned self] (RPPreviewViewController, error) in
print("in completion handler")
if let previewView = RPPreviewViewController {
print("will transition to gameplay video")
previewView.previewControllerDelegate = self
self.presentViewController(previewView, animated: true, completion: nil)
self.sessionHandler.session.stopRunning()
}
}
}
Комментарии:
1. Перед вызовом startRecording необходимо проверить, доступны ли screen recorder и микрофон.
2. я добавил его, но проблема сохраняется
3. Пожалуйста, обновите вопрос с помощью вышеуказанных проверок.
4. обновлено; пожалуйста, проверьте это
5. проверка доступности микрофона отсутствует. Вам нужен микрофон, а проверка не существует.
Ответ №1:
Я получал то же самое. Работал на одном устройстве, а не на другом. Единственное отличие заключалось в том, что рабочее устройство было на iOS версии 10.1.0, а другое — iOS версии 10.0.2 — обновлено до 10.2.0, и оно сразу же начало работать.
Ответ №2:
У меня была такая же проблема, и я только что нашел ее причину (или, может быть, просто причину). Если ваше устройство подключено к Wi-Fi, у которого нет доступа в Интернет, возникает эта проблема. Если вы подключите его к Wi-Fi с доступом в Интернет или отключите Wi-Fi, он работает просто отлично. Я предполагаю, что при запуске записи ReplayKit пытается подключиться к некоторым серверам Apple, но никогда не достигает их, а также никогда не истекает время ожидания. Вы можете наблюдать такое же поведение в App Store. Когда вы подключены к Wi-Fi без Интернета, он пытается загрузить хранилище навсегда и никогда не истекает.