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

时间:2016-08-02 07:09:25

标签: ios quicktime screen-recording

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

我用UIScreen检测到了hdmi输出和airplay。 但是没有检测到QuickTime Player视频录制。

如何检测QuickTime播放器?

感谢。

2 个答案:

答案 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{

    }
}