replaykit startrecording有时候永远不会input完成处理程序

我正在使用重放套件来保存游戏中的屏幕video,但随机时有时startRecordingWithMicrophoneEnabledrecorder.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() } } } 

我得到了同样的东西。 正在一个设备上工作,而不是另一个。 唯一不同的是,工作设备是在iOS版本10.1.0和另一个是iOS版本10.0.2 – 升级到10.2.0,并立即开始工作。

我有同样的问题,只是find其原因(或者只是一个原因)。 如果您的设备连接到没有互联网访问的WiFi,则会出现此问题。 如果您将其连接到具有互联网访问权的WiFi或禁用WiFi,则工作正常。 我想在开始录制时,ReplayKit尝试连接到一些苹果服务器,但从来没有达到他们,也永远不会超时。 您可以观察与App Store相同的行为。 当你连接到没有互联网的WiFi,它会尝试永久加载商店,永远不会超时。