Поток 1: EXC_BAD_ACCESS (код = 1, адрес = 0x20), когда subView - PullRequest
0 голосов
/ 03 июня 2018

Я получил странную ошибку.Thread 1: EXC_BAD_ACCESS (code=1, address=0x20) При просмотре подпредставления в другом представлении.

Оба v iew object not nil.

Как решить эту проблему.

Редактировать: IЯ использую код видеочата с помощью VOIP.

При поступлении входящего вызова и после принятия вызова.Мне нужно отобразить экран.Этот экран показывает нормально и другие кнопки UIElements и т. Д. (Включая функциональные возможности кнопок) все работает, как и ожидалось, для аудиовызовов.

Но в видеовызове после получения видео от удаленного пользователя я пытаюсь выполнить суб-просмотр дляПосмотреть .Я мог просматривать экран удаленного пользователя на секунду.внезапно происходит сбой (поток 1: EXC_BAD_ACCESS (код = 1, адрес = 0x20)).

func session(_ session: QBRTCBaseSession, receivedRemoteVideoTrack videoTrack: QBRTCVideoTrack, fromUser userID: NSNumber) {

  if (session as! QBRTCSession).id == self.session?.id {

      let remoteView :QBRTCRemoteVideoView = QBRTCRemoteVideoView()
      remoteView.videoGravity = AVLayerVideoGravity.resizeAspect.rawValue
      remoteView.clipsToBounds = true
      remoteView.setVideoTrack(videoTrack)
      remoteView.tag = userID.intValue

      var frame = self.mainVideoView.bounds
      frame.origin.y = 0
      remoteView.frame = frame

      self.view.addSubview(remoteView)
     }
}

Где receivedRemoteVideoTrack функция - метод делегата для удаленного видео.

enter image description here

enter image description here

1 Ответ

0 голосов
/ 04 июня 2018

Имейте в виду, что Metal доступно только с A7 процессорами или выше.Я могу предложить вам OpenGLES рисунки вместо Metal, а пока просто сделайте это:

QBRTCRemoteVideoView.preferMetal = NO
...