我使用 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)
}
})
}
答案 0 :(得分:0)
尝试改用 stopCapture
。
由于 Apple 的安全措施,ReplayKit 是我们可以使用 iOS 进行屏幕录制的唯一方法,但这也意味着对其的控制有限。如果您仍有问题,ReplayKit 问题的最佳位置是 apple's developer forum。