iOS 11防止像Netflix一样的屏幕记录

Shu*_*uja 6 iphone xcode cocoa-touch screen-recording ios11

我在我的应用程序中播放视频,我不想录制.什么Netflix的应用做的是,他们让音频采集而不是视频正在录制屏幕.

任何人都知道如何实现此功能?

nat*_*ter 5

您可以收听UIScreenCapturedDidChange通知。

NotificationCenter.default.addObserver(self, selector: #selector(screenCaptureChanged), name: NSNotification.Name.UIScreenCapturedDidChange, object: nil)
Run Code Online (Sandbox Code Playgroud)

这在 iOS 11 屏幕录制开始和结束时调用。当用户正在录制屏幕时,您可以修改 UI 以阻止任何您不想录制的内容。

UIScreenisCaptured属性更改时会触发此通知。您也可以自己检查此属性:

UIScreen.main.isCaptured
Run Code Online (Sandbox Code Playgroud)


小智 5

我相信,Netflix 利用了苹果提供的“FairPlay Streaming”技术。根据苹果文档

如果您的应用程序使用 FairPlay Streaming (FPS),您的视频内容将不会自动被 iOS 11 屏幕录制功能或 macOS 上的 QuickTime Player 捕获。应用程序中正在播放内容的部分将被涂黑。

注意:FairPlay Streaming 只会为您内容的视频部分提供保护。为了防止捕获音频部分,您仍应使用本文档中讨论的 UIScreen API,以便在屏幕捕获开始时向用户提供适当的消息。

您可以通过以下链接深入了解FPS:

https://developer.apple.com/streaming/fps/

任何应用程序都可以整合 FPS,以获得与 Netflix 相同的结果。