ReplayKit反复进入后台后停止缓冲

时间:2018-08-26 13:09:08

标签: ios swift replaykit

我正在尝试使用ReplayKit在我的应用程序内部创建直播。 基本上,我想共享我的屏幕并查看其他用户的屏幕。

要获取缓冲区,ReplayKit提供了下一个功能:

func startCapture(handler captureHandler: ((CMSampleBuffer, RPSampleBufferType, Error?) -> Void)?, completionHandler: ((Error?) -> Void)? = nil)

这是我启动ReplayKit并获取缓冲区的方法:

private func startRecording() {
    RPScreenRecorder.shared().startCapture(handler: { (sampleBuffer, bufferType, error) in
        switch bufferType {

        case RPSampleBufferType.video:
            // Handle buffer and send it to server
            break

        case RPSampleBufferType.audioApp:
            break
        case RPSampleBufferType.audioMic:
            break
        }

    }, completionHandler: nil)
}

这很好,但是我正面临下一个问题;如果屏幕不断变化(如闪烁的按钮),则当我将应用程序发送到后台并再次返回时,ReplayKit会停止调用其捕获处理程序。

也许是问题所在,startCapture功能是在有限的时间内录制屏幕的,而不是在现场直播的。

I have made an example in Github,带有闪烁的按钮,显示我所遇到的问题; ReplayKit正常运行,直到反复进入后台为止。然后它停止,并且使它再次起作用的唯一方法是重新启动设备。

0 个答案:

没有答案