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{ } }