AVAssetWriter finishWritingWithCompletionHandler Невозможно вызвать метод, когда статус равен 0 - PullRequest
0 голосов
/ 22 сентября 2018

Я борюсь с проблемой в новых iOS 12 и Xcode 10. При запуске записи экрана происходит сбой и отображается следующий журнал

2018-09-22 08:00:09.459676+0530 Chat story[95207:3292867] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '*** -[AVAssetWriter finishWritingWithCompletionHandler:] Cannot call method when status is 0'

В последней версии Xcode все работало нормально.

Также вот мой код, который я написал для этого

func startRecording(withFileName fileName: String, recordingHandler: @escaping (Error?) -> Void,onCompletion: @escaping (Error?)->Void)
    {
        self.viewOverlay.show()

        screenRecorder.startRecording(withFileName: fileName) { (error) in
            recordingHandler(error)
            self.recordCompleted = onCompletion
        }
    }

    func stopRecording()
    {
        screenRecorder.stopRecording { (error) in
            self.viewOverlay.hide()
            self.recordCompleted?(error)
        }
    }

Также в ScreenRecorder.swift есть еще один метод, который вызывает метод StopRecording.Вот этот метод

func stopRecording(handler: @escaping (Error?) -> Void)
        {
            if #available(iOS 11.0, *)
            {
                RPScreenRecorder.shared().stopCapture
                {    (error) in
                        handler(error)
                        self.assetWriter.finishWriting
                    {
                        print(ReplayFileUtil.fetchAllReplays())

                    }
                }
            } else {
                // Fallback on earlier versions
            }
        }
...