我想使用QuickTime Player阻止每个应用的屏幕录制或视频输出。
我用UIScreen
检测到了hdmi输出和airplay。
但是没有检测到QuickTime Player视频录制。
如何检测QuickTime播放器?
感谢。
答案 0 :(得分:3)
因此不知道检测QuickTime Player录音。
但是我找到了一个解决方法。
如果正在运行QuickTime Player录制,AVAudioSession的输出portType已更改为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)
感谢。
答案 1 :(得分:1)
使用iOS 11,您可以使用通知
NSNotification.Name.UIScreenCapturedDidChange
on AppDelegate.swift
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
NotificationCenter.default.addObserver(self, selector: #selector(checkIFScreenIsCapture), name: NSNotification.Name.UIScreenCapturedDidChange, object: nil) ......
使用选择器
func checkIFScreenIsCapture(notification:Notification){
guard let screen = notification.object as? UIScreen else { return }
if screen.isCaptured == true {
}else{
}
}