replaykit startrecording иногда никогда не входит в обработчик завершения

Я использую набор воспроизведения, чтобы сохранить видео моего экрана во время игры, но иногда случайным образом startRecordingWithMicrophoneEnabled и recorder.stopRecordingWithHandler никогда не входят в обработчик завершения

он не выдает ошибку, он просто запускается и висит на неопределенный срок.

if recorder.available && 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 && 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()
        }
    }
}

person stanley    schedule 14.10.2016    source источник
comment
Вам необходимо проверить, доступны ли средство записи экрана и микрофон, прежде чем вызывать метод startRecording.   -  person Sachin Vas    schedule 14.10.2016
comment
я добавил, но проблема осталась   -  person stanley    schedule 14.10.2016
comment
Пожалуйста, обновите вопрос с вышеуказанными проверками.   -  person Sachin Vas    schedule 14.10.2016
comment
обновлено; Пожалуйста, проверьте это   -  person stanley    schedule 14.10.2016
comment
микрофон доступен проверить нет. Вам нужен микрофон, а чека нет.   -  person Sachin Vas    schedule 14.10.2016
comment
Ах я вижу. я добавлю это и дам вам знать, если это исправит это   -  person stanley    schedule 14.10.2016
comment
все еще случается. а также добавлен код остановки записи, так как иногда возникает проблема   -  person stanley    schedule 14.10.2016
comment
у меня такая же проблема.   -  person Blind Ninja    schedule 19.10.2016
comment
Пожалуйста, ознакомьтесь с моим ответом: stackoverflow. ком/вопросы/46362015/   -  person Flupp    schedule 22.09.2017
comment
Перезагрузка iPhone работает для меня. Может, тебе стоит попробовать. stackoverflow.com/questions/46362015 /   -  person Otf Tk    schedule 09.10.2018


Ответы (2)


Я получал то же самое. На одном устройстве работало, на другом нет. Единственная разница заключалась в том, что рабочее устройство было на iOS версии 10.1.0, а другое — на iOS версии 10.0.2 — обновлено до 10.2.0, и оно сразу же заработало.

person Guaranteed    schedule 22.12.2016

У меня была такая же проблема, и я только что нашел ее причину (или, может быть, только причину). Эта проблема возникает, если ваше устройство подключено к сети Wi-Fi, у которой нет доступа в Интернет. Если вы подключите его к WiFi с доступом в Интернет или отключите WiFi, он будет работать нормально. Я предполагаю, что при запуске записи ReplayKit пытается подключиться к некоторым серверам Apple, но никогда не достигает их, а также никогда не истечет время ожидания. Вы можете наблюдать такое же поведение с App Store. Когда вы подключены к Wi-Fi без Интернета, он пытается загрузить магазин навсегда и никогда не отключается.

person DerSeegler    schedule 13.09.2017