Ios ReplayKit stopRecording不是第一次输入的
我正在尝试使用ReplayKit视频捕获ARKIt应用程序。我有一个录制按钮,按下时变为红色并开始录制,然后再次按下时变为白色并停止录制 但是停止录制的方法在第一次使用时从未奏效 如果recorder.i可用{ recorder.delegate=selfIos ReplayKit stopRecording不是第一次输入的,ios,swift,replaykit,Ios,Swift,Replaykit,我正在尝试使用ReplayKit视频捕获ARKIt应用程序。我有一个录制按钮,按下时变为红色并开始录制,然后再次按下时变为白色并停止录制 但是停止录制的方法在第一次使用时从未奏效 如果recorder.i可用{ recorder.delegate=self if recorder.isRecording { print("Recorder is recording...") // Stop recording
if recorder.isRecording {
print("Recorder is recording...")
// Stop recording
recorder.stopRecording { previewController, error in
print("Stop recording...")
self.recordImage.color = UIColor.white
self.recordImage.colorBlendFactor = 1
if let controller = previewController {
controller.previewControllerDelegate = self
self.present(controller, animated:true, completion:nil)
}
}
}
else {
// Start recording
recorder.startRecording { error in
print("Starting to record…")
if error == nil {
print("Start Recording…")
self.recordImage.color = UIColor.red
self.recordImage.colorBlendFactor = 1
}
}
}
第一次按下时,我可以看到录制已开始。然后再次按下时,我可以看到已输入recorder.isRecording,但recorder.stopRecording中的块不工作。我必须再次按下开始录制,然后在输入recorder.stopRecording块之前再次停止
有什么想法吗?谢谢你的帮助
Press Record!
Starting to record…
Start Recording…
Press Record!
Recorder is recording...
您使用的是哪个iOS版本?我见过这样的情况:完成处理程序通常在第一次尝试时没有被调用,但之后就开始工作了。这种情况在iOS 9上发生了很多,在11.0中再次出现,但在11.0.3中似乎更好 我不确定你是否在iPad上尝试,但你上面的代码在iPad上不起作用。你需要设置一个演示风格
if UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiom.phone {
self.present(controller, animated: true, completion: nil)
}
else {
controller.popoverPresentationController?.sourceRect = self.recordingButton.bounds
controller.popoverPresentationController?.sourceView = self.view
controller.modalPresentationStyle = UIModalPresentationStyle.popover
controller.preferredContentSize = CGSize(width: self.view.frame.width, height: self.view.frame.height)
self.present(controller, animated: true, completion: nil)
}
我根据上的回复修复了此问题
这肯定是iOS中的一个bug;但是从Info.plist中删除“本地化本地开发区域”条目似乎可以解决这个问题。我在11.0.3下再次测试,recorder.stopRecording似乎没有进入完成处理程序。