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))");
}
}