检查屏幕是否正在录制 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
}
我想在允许后续操作之前检查屏幕是否正在录制,我最初尝试使用 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
}