ReplayKit screenCapture завершается ошибкой после повторного открытия приложения в фоновом режиме

С помощью RPScreenRecorder.shared().startCapture(...)для захвата экрана приложения в iOS с помощью Swift. Все работает нормально, пока приложение не перейдет в фоновый режим, и когда я снова его открою, в консоли появится следующее сообщение об ошибкеOperation Interrupted Optional(Error Domain=AVFoundationErrorDomain Code=-11847 "Operation Interrupted" UserInfo={NSLocalizedRecoverySuggestion=Stop other operations and try again., NSLocalizedDescription=Operation Interrupted, NSUnderlyingError=0x282a92c10 {Error Domain=NSOSStatusErrorDomain Code=-16121 "(null)"}})Кто-нибудь знает, как решить эту проблему? Ниже приведен полный код моегоstartCapture() метод

recorder.startCapture(handler:
    { (sample, bufferType, error) in
      if CMSampleBufferDataIsReady(sample)
      {
        DispatchQueue.main.async { [weak self] in
          if self?.assetWriter.status == AVAssetWriter.Status.unknown {
            print("AVAssetWriterStatus.unknown")
            if !(self?.assetWriter.startWriting())! {
              return
            }
            self?.assetWriter.startSession(atSourceTime: CMSampleBufferGetPresentationTimeStamp(sample))
            self?.startSesstion = true
          }
        }
                    
        if self.assetWriter.status == AVAssetWriter.Status.failed {
          print("Error occured, status = \(self.assetWriter.status.rawValue), \(self.assetWriter.error!.localizedDescription) \(String(describing: self.assetWriter.error))")
          return
        }
        
        if (bufferType == .video)
        {
          if self.videoInput.isReadyForMoreMediaData
          {
            self.videoInput.append(sample)
          }
        }
        
        if (bufferType == .audioMic)
        {
          if self.audioInput.isReadyForMoreMediaData
          {
            self.audioInput.append(sample)
          }
        }
        
      }
      
  }) { (error) in
    if((error) != nil) {
      print("Something went wrong when starting the capture \(String(describing: error))");
    }
  }

0 ответов

Другие вопросы по тегам