在iOS 11中检测屏幕捕获

我的要求是限制用户录制视频,因为我的应用中的所有视频仅适用于付费用户。 如果我的应用程序处于活动状态,我想限制屏幕录制。 我找不到任何解决方案可以防止仅针对我们的应用进行屏幕记录(或屏幕截图)。 这是操作系统级别的功能,不能被覆盖( 我找不到任何解决方案。如果您对此有所了解,请发表评论 )。

因此,唯一的解决方案是在发生屏幕录制时暂停或停止播放器。 幸运的是,iOS为此提供了解决方案。 iOS 11的UIScreen可用的实例属性名为isCaptured (以快速captured isCaptured )。 它是一个Boolean值,指示是否将屏幕内容克隆到另一个目标。

  // Obj-C 
@property(nonatomic, readonly, getter=isCaptured) BOOL captured ; //迅速
var isCaptured : Bool { get }

我还使用了mirroredScreen属性,该属性检测屏幕是否被外部显示器镜像。

因此,其想法是检查这些 bool 值,并在其中任何一个为 true 停止玩家

我必须创建一个通知,该通知将在bool值变为true时帮助我们进行通知。 该代码在ObjC中,非常容易理解。 看看下面的代码。

这是正在运行的应用程序的gif。

而已。 !

请享用!!

如果您喜欢阅读这篇文章,请分享并给予鼓掌,以便其他人可以找到它!

您可以在Medium上关注我以获取新文章。 另外,在LinkedIn上与我联系。

如果您有任何评论,问题或建议,请随时在下面的评论部分中发布它们!