Разница между зеркалированием в эфире и без зеркалирования

Я пытаюсь сделать трансляцию с Apple TV. Я обнаружил, что когда я просто проигрываю видео с помощью avplayer без зеркалирования, я все еще могу играть в полноэкранном режиме. Однако количество экранов равно только 1 (для iPad).
Если я выполняю зеркальное отображение, количество экранов равно 2 (один – iPad, а другой – внешний монитор). Я думаю, что без зеркалирования количество экранов тоже должно быть два. Я путаюсь в этом. Я хотел бы узнать больше о разнице между зеркалированием в эфире и без зеркалирования

screens = [UIScreen screens]; //to count screen

введите здесь описание изображения


person Khant Thu Linn    schedule 14.01.2014    source источник


Ответы (2)


Разница проста.

Зеркальное отображение будет дублировать все на вашем экране и отображать его на другом экране. Это используется для таких вещей, как демонстрация фотогалереи группе людей или что-то в этом роде.

Если зеркальное отображение отключено, это будет действовать как внешний дисплей. Это используется в таких играх, как Real Racing 3, где вы можете играть в игру на телевизоре или чем-то еще и использовать свой iPhone (iPad) в качестве контроллера для игры. На экранах телевизора и iPhone будут разные вещи.

person Fogmeister    schedule 14.01.2014
comment
Не могли бы вы объяснить больше для количества экранов? Кроме того, когда я делаю зеркальное отображение, я также могу заменить свой uiview на своем мониторе пользовательским uiview, чтобы iPad и внешний монитор имели разное представление. Я плохо понимаю. - person Khant Thu Linn; 14.01.2014
comment
Зеркальное отображение — это именно то, как это звучит. Каждый экран одинаковый. Как зеркало показывает одни и те же вещи. Если вы хотите, чтобы на каждом экране было по-разному, не используйте зеркалирование. - person Fogmeister; 14.01.2014

Хочется вмешаться, так как ответ Фогмейстера не совсем точен.

Вы можете легко использовать зеркалирование и отображать другой контент на экране Apple-TV. Насколько мне удалось выяснить, это единственный способ, поддерживаемый любым общедоступным API Apple на данный момент. Решение подробно описано здесь среди прочего. места.

Идея состоит в том, чтобы захватить внешнее окно, а затем дать ему viewController, которым вы управляете (как и любой другой):

  if([[UIScreen screens] count] > 1){
        UIScreen *secondScreen = [[UIScreen screens] objectAtIndex:1];
        _secondWindow = [[UIWindow alloc] initWithFrame:secondScreen.bounds];
        self.secondWindow.screen = secondScreen;
        _externalViewController = [[YourExternalViewControllerClass alloc] init];

        self.secondWindow.rootViewController = self.externalViewController;
        self.secondWindow.hidden = NO;
    }  

В приведенном выше примере экземпляры _secondWindow и _externalViewController являются свойствами viewController, настраивающими представление устройства.

person T. Benjamin Larsen    schedule 03.04.2014