Необычное решение, но, похоже, оно временно исправило проблему для меня. Ура!
ние проблемы
Обработчик завершения startRecording () никогда не вводится, даже если было показано всплывающее окно «Разрешить запись экрана в $ AppName». Иногда появляется всплывающее окно «Разрешить запись экрана в $ AppName». Это также происходит, когда я удаляю приложение, перезагружаю устройство и выполняю очистку / сборку проекта. Я использую iPad Air 2 с iOS 11 и Xcode 9.
Исследовательская работа
Эта проблема, казалось, была проблемой и в более ранних версиях, см. Здесь:replaykit startrecording иногда никогда не входит в обработчик завершения Я не могу согласиться с тем, что отключение Wi-Fi или стабильное подключение к Интернету решают эту проблему, и эта проблема не решается в iOS 11.
Вот код, который я использую:
@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)
}
})
}