O manipulador de conclusão ReplayKit: startRecording () nunca é inserido
Descrição do Problema
O manipulador de conclusão startRecording () nunca é inserido, mesmo que o pop-up "Permitir gravação de tela em $ AppName" tenha sido exibido. O pop-up "Permitir gravação de tela em $ AppName" é exibido ocasionalmente. Isso acontece também quando eu removo o aplicativo, reinicio o dispositivo e faço uma limpeza / compilação no projeto. Estou usando um iPad Air 2 com iOS 11 e Xcode 9.
Pesquisa
Esse problema também parecia ser um problema nas versões anteriores, veja aqui:Às vezes, o replaykit startrecording nunca entra no manipulador de conclusão Não posso aprovar que desligar o Wi-Fi ou ter uma conexão estável à Internet resolve esse problema, nem o problema foi corrigido no iOS 11.
Aqui está o código que estou usando:
@IBAction func recordButtonTapped(_ sender: UIButton) {
if !recorder.isRecording {
startRecording(sender)
} else {
stopRecording(sender)
}
}
private func startRecording(_ sender: UIButton) {
guard recorder.isAvailable else {
print("Recording is not available at this time.")
// Display UI for recording being unavailable
return
}
recorder.startRecording(handler: { (error) in
guard error == nil else {
print("There was an error starting the recording.")
print(error!)
return
}
print("Started Recording Successfully")
DispatchQueue.main.async {
sender.setTitle("Stop Recording", for: .normal)
sender.setTitleColor(.red, for: .normal)
}
})
}