2016-08-02 12 views

Antwort

3

Also nicht erkennen QuickTime Player Aufnahme.

Aber ich fand eine Lösung mit einem Trick.

Wenn Quicktime Player Aufnahme läuft, AVAudioSession der Ausgang porttype wurde HDMIOutput geändert.

So Codierung ich wie folgt ... (Swift 2,2)

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

einfügen, die in ViewDidLoad funktionieren und hinzugefügt AVAudioSessionRouteChangeNotification Benachrichtigung.

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

Danke.

0

Mit 11 iOS Sie die Benachrichtigung

NSNotification.Name.UIScreenCapturedDidChange 

auf AppDelegate.swift

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { 

    NotificationCenter.default.addObserver(self, selector: #selector(checkIFScreenIsCapture), name: NSNotification.Name.UIScreenCapturedDidChange, object: nil) ...... 

Verwendung Selektor verwenden können

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

    }else{ 

    } 
}