RPSystemBroadcaster- 如何在 iOS 中终止应用程序时停止屏幕录制?

时间:2021-02-23 12:54:59

标签: ios swift agora.io

我使用 Agora iOS SDK 开发了一个应用程序。在这里,我使用 RPSystemBroadcastPickerView 启动/停止屏幕共享,它工作正常。

func prepareSystemBroadcaster() {
    if #available(iOS 12.0, *) {
        let frame = CGRect(x: 0, y:0, width: 60, height: 60)
        let systemBroadcastPicker = RPSystemBroadcastPickerView(frame: frame)
        systemBroadcastPicker.autoresizingMask = [.flexibleTopMargin, .flexibleRightMargin]
        if let url = Bundle.main.url(forResource: "Agora-ScreenShare-Extension", withExtension: "appex", subdirectory: "PlugIns") {
            if let bundle = Bundle(url: url) {
                systemBroadcastPicker.preferredExtension = bundle.bundleIdentifier
            }
        }
        broadcasterPickerContainer.addSubview(systemBroadcastPicker)
    } else {
        self.showAlert(message: "Minimum support iOS version is 12.0")
    }
    
}

我的问题是当用户在共享屏幕时从后台终止应用程序。如何在不点击红条的情况下停止屏幕录制?
我在 AppDelegate 中尝试了以下代码,但找不到任何解决方案。

 func applicationWillTerminate(_ application: UIApplication) {

    RPScreenRecorder.shared().stopRecording( handler: { error in
         if let error = error {
           print(error)
         }
    })
}

1 个答案:

答案 0 :(得分:0)

尝试改用 stopCapture

由于 Apple 的安全措施,ReplayKit 是我们可以使用 iOS 进行屏幕录制的唯一方法,但这也意味着对其的控制有限。如果您仍有问题,ReplayKit 问题的最佳位置是 apple's developer forum

相关问题