2017-09-22 3 views
3

문제 설명 startRecording() 완료 핸들러가 입력되지 않습니다ReplayKit : startRecording() 완료 핸들러는 입력하지 않습니다

은 "$ 프로그램 응용에서 허용 화면 녹화는"팝업이 표시에도 불구하고. 가끔 "$ AppName에 화면 기록 허용"팝업이 표시됩니다. 이는 앱을 제거하고 기기를 다시 시작한 다음 프로젝트를 정리/빌드 할 때도 발생합니다. 나는이 문제뿐만 아니라 이전 버전에서 문제가 될 것 같았다

아이폰 OS (11)와 엑스 코드 (9)

연구와 아이 패드 에어 2를 사용하고, 여기 참조 : replaykit startrecording sometimes never enters completion handler 나는 것을 승인 할 수 없습니다

@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) 
     } 
    }) 
} 
+0

나는 또한 동일한 문제를 겪었으며 [여기] (https://stackoverflow.com/questions/46199571/rpscreenrecorder-stoprecording-block-not-getting-called) 질문을 제기했습니다! – iPeter

+0

'녹음 시작'또는 '녹음 중지'핸들러가 호출되지 않습니다. – iPeter

+0

@iPeter 내 대답을보고 시도해보십시오. 적어도 나를 위해 일했습니다. 그리고이 버그에 대한 진정한 해결책은 아니지만 적어도 코드는 다시 실행됩니다. – Flupp

답변

1

I : 무선 랜을 끄거나 안정적인 인터넷 연결을 가진 것은이 문제를 해결하지, 어느 쪽도이 문제가 여기에

아이폰 OS (11)에 고정되어있다하는 것은 내가 사용하는 코드입니다 내가 직접 대답을 찾은 것 같아. 그렇게된다면이를 시도하고 확인하십시오 :

  1. 을 슬라이드, 해제 표시하는
  2. 때까지 홈 버튼을 길게하여 앱에서 iOS 장치의
  3. 클린 엑스 코드 프로젝트
  4. 보류 전원 버튼을 삭제 화면이 깜박 블랙, 다음
  5. 다시
  6. 핸들러는 이제 다시
를 호출해야 Xcode 프로젝트를 실행하여 모든 버튼을 해제

의심되는 점은 장치 RAM을 정리할 때만 재설정 할 수있는 레코더의 사용 된 공유 인스턴스에 버그가 있다는 것입니다.

편집 : 는 또한 녹화가 진행되는 동안 내가 엑스 코드와 실행중인 응용 프로그램을 중지 할 때이 오류 만 발생하는 것을 관찰했다. 배경에 앱을 넣거나 iOS 작업 관리자로 앱을 종료하면 앱이 다시 시작될 때이 오류가 표시되지 않습니다.

결론 : 녹음이 실행되는 동안 Xcode를 사용하여 앱을 종료하지 마세요. 대신 iOS 작업 관리자를 사용하면 계속해서 제대로 작동하고 콜백을 전달합니다.

편집 2 : 버그 신고가 접수되었으며 Apple은이 문제를 알고 있으며 해결하기 위해 노력하고 있다고 대답했습니다.