replayKit RPSampleBufferType 没有视频

replayKit RPSampleBufferType does not have video

我正在使用 ReplayKit 来录制屏幕。但是,我有一个关于视频缓冲区的非常奇怪的问题。当用户点击录制按钮时,将调用以下方法;

       rpScreenRecorder.startCapture { (sampleBuffer, bufferType, error) in
        if let error = error {
            print(error.localizedDescription)
        }
        
        switch bufferType {
        case .video:
            print("video")
        case .audioApp:
            print("audioApp")
        case .audioMic:
            print("audioMic")
        @unknown default:
            print("default")
        }
    } completionHandler: { (error) in
        if let error = error {
            print(error.localizedDescription)
        }
    }

问题是,bufferType 没有视频。当我打印所有案例时,audioMic 和 audioApp 永远返回,但视频永远不会返回。

当我删除应用程序并重新安装时,我只能在第一次启动时很容易地重复这个问题。它在其他情况下按预期工作。

p.s: 在问这个问题之前,我看了其他问题。 None 人解决了问题。

经过几天几夜的解决,终于找到了解决办法

很简单,原因是关于 main window

Main window 对于回放套件很重要,因为它正在录制主要 window。

我使用了不同的 windows 来隐藏录制视频中的一些视图。我还更改了主要 window 的 window 级别。今天,我注意到删除与 main window 相关的所有调整都解决了问题。 (其他windows无效。)