【问题标题】:Check if Screen is recording swift检查屏幕是否正在快速录制
【发布时间】:2020-08-10 13:16:50
【问题描述】:

我试图在允许执行以下操作之前检查屏幕是否正在录制,我最初尝试使用 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.
    }
            
}

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

谢谢

【问题讨论】:

    标签: swift replaykit


    【解决方案1】:

    UIScreen 包含UIScreen.isCaptured 属性,您应该可以参考该属性以确定屏幕是否可能被记录。但是,如果设备正在 AirPlayed 或以其他方式广播,这也会返回 true

    YES 值表示系统正在主动记录、镜像、 或使用 AirPlay 流式传输屏幕内容。

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

    【讨论】:

    • 正确的变量名应该是 isRecordingMirroringOrAirPlaying。在这里,我为你修好了:)
    • 太棒了。虽然我不得不做UIScreen.main.isCaptured 而不是mainScreen() 我猜是因为它在范围内?还有一件事,代码执行完成后如何提示用户结束录屏?
    • 您可能只需要坚持使用正常的警报方法 - UIAlertController 等...如果您的用户不使用 ReplayKit,您将没有太多发言权停止系统范围的屏幕录制。
    • 有对应的 appkit 吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-08
    • 1970-01-01
    • 1970-01-01
    • 2012-10-21
    相关资源
    最近更新 更多