iOS使用QuickTime播放器检测/屏蔽屏幕录制

我想使用QuickTime Player阻止每个应用的屏幕录制或video输出。

我用UIScreen检测到了HDMI输出和播放。 但QuickTime Player的video录制是没有检测到的。

如何检测QuickTime播放器?

谢谢。

因此不知道检测QuickTime Player的录音。

但是我find了一些解决方法。

如果正在运行QuickTime Player录制,则AVAudioSession的输出端口types已更改为HDMI输出。

所以我编码如下…(Swift 2.2)

 func checkOutputPortType() { let asRoute = AVAudioSession.sharedInstance().currentRoute for output in asRoute.outputs { if output.portType == AVAudioSessionPortHDMI { // something you want.. } } } 

在ViewDidLoad中插入该函数并添加AVAudioSessionRouteChangeNotification通知。

 NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(checkOutputPortType), name: AVAudioSessionRouteChangeNotification, object: nil) 

谢谢。

使用iOS 11,您可以使用通知

 NSNotification.Name.UIScreenCapturedDidChange 

AppDelegate.swift

 func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { NotificationCenter.default.addObserver(self, selector: #selector(checkIFScreenIsCapture), name: NSNotification.Name.UIScreenCapturedDidChange, object: nil) ...... 

使用select器

 func checkIFScreenIsCapture(notification:Notification){ guard let screen = notification.object as? UIScreen else { return } if screen.isCaptured == true { }else{ } }