4

Apple TV is connected on same WiFi network. AirPlay device is shown as Connected on AirPlay Picker. Video playing but only when mirroring is turned on.

Screens array count is 2 only when mirroring is turned on. Is there a way to display contents on Apple TV without even turning on mirroring.

How do I get Screen count 2 without turning on Mirroring on iOS device.

Here is my code:

func checkForExistingScreenAndInitializeIfPresent() {
    print("\n Total Displays Available:-:- \(UIScreen.screens().count)")        
    if UIScreen.screens().count > 1 {
        // Get the screen object that represents the external display.
        let secondScreen: UIScreen = UIScreen.screens()[1]
        let screenBounds: CGRect = secondScreen.bounds
        self.secondWindow = UIWindow(frame: screenBounds)
        self.secondWindow!.screen = secondScreen
        self.secondWindow!.hidden = false
        let airplayName: String = self.activeAirplayOutputRouteName()
        print("\n External Displays:- \(airplayName) :- Connected")
        print("\n Total Displays Available:- \(UIScreen.screens().count)")
        print("\(airplayName) bounds : \(secondScreen.nativeBounds)")  
    } 
}

func activeAirplayOutputRouteName() -> String {
    let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
    let currentRoute: AVAudioSessionRouteDescription = appDelegate.audioSession.currentRoute
    for outputPort: AVAudioSessionPortDescription in currentRoute.outputs {
        if (outputPort.portType == AVAudioSessionPortAirPlay) {
            return outputPort.portName
        }
    }
    return ""
}
Community
  • 1
  • 1
Jitendra
  • 842
  • 1
  • 9
  • 25

0 Answers0