检查屏幕是否正在录制 swift

Check if Screen is recording swift

我想在允许后续操作之前检查屏幕是否正在录制,我最初尝试使用 ReplayKit 自动录制,但这不是一个可行的解决方案,因为它不允许在应用程序外录制, 所以基本上我想做的是检查用户是否已经使用 IOS 控制中心记录器开始屏幕录制,然后再允许他们执行另一段代码。

类似于:

func handleScreen() {
    var isRecording: Bool = false

    if ScreenIsRecording { //(this is what i don't know how to check) 
       isRecording = true 
    }

    if isRecording == true {
     //   execute this code.
    }
            
}

我对能够执行屏幕录制的其他解决方案持开放态度,但它必须能够录制所有屏幕,而不仅仅是应用内屏幕。

谢谢

UIScreen 包括 UIScreen.isCaptured 属性,您应该可以参考它来确定是否可能正在录制屏幕。但是,如果设备正在使用 AirPlayed 或以其他方式广播,这也会 return true

A value of YES indicates the system is actively recording, mirroring, or using AirPlay to stream the contents of the screen.

if UIScreen.mainScreen().isCaptured {
    isRecording = true
}