在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上与我联系。
如果您有任何评论,问题或建议,请随时在下面的评论部分中发布它们!