2016-03-08 3 views
0

Я пытаюсь подключить Apple TV через трансляцию, но проблема в том, что я подключу любое другое внешнее устройство, например bluetooth или какое-то другое устройство, которое он показывает, как устройство, подключенное в окне. Поэтому я хочу определить, какое устройство подключено. Мне нужно включить только при подключении Apple TV.Как отличить Apple TV и другие устройства в эфире?

Как я могу определить, является ли это яблочным телевизором или каким-либо другим устройством?

Это, как я создать AirPlay пользовательскую кнопку

for (UIButton *button in volumeView.subviews) { 
      if ([button isKindOfClass:[UIButton class]]) { 
       self.airplayButton = (UIButton*)button; 
       button.frame = CGRectMake(0, 0, 30, 23); 
       button.backgroundColor = [UIColor clearColor]; 
       [self.airplayButton addObserver:self forKeyPath:@"alpha" options:NSKeyValueObservingOptionNew context:nil]; 

      } 

     } 

Таким образом, альфа всегда меняется на кнопку даже некоторые другие устройства подключается.

ответ

0

Я уже изучал это раньше, нет простого способа определить, является ли подключенное устройство Apple TV, есть Airplay Picker, который делает это, а код/​​функции позади него не кажутся быть доступным.

Лучшее, что вы можете сделать, это следить за добавлением/удалением дополнительных экранов, а затем отображать внешний контент только тогда, когда на экране есть возможности делать то, что вам нужно.

Я уже где-то читал, что вы можете получить возможности устройства для трансляции и использовать эту информацию для обнаружения Apple TV, но, к сожалению, я не могу найти ее в данный момент. Если я найду это, я добавлю комментарий.

На данный момент, лучшим вариантом было бы использовать концепции, описанные в этой guide

код, предоставленный в Objective-C, но его очень легко превратить в скор, вот главная часть, которую вы должны смотреть на

- (void)checkForExistingScreenAndInitializeIfPresent 

{ 

    if ([[UIScreen screens] count] > 1) 

    { 

     // Get the screen object that represents the external display. 

     UIScreen *secondScreen = [[UIScreen screens] objectAtIndex:1]; 

     // Get the screen's bounds so that you can create a window of the correct size. 

     CGRect screenBounds = secondScreen.bounds; 



     self.secondWindow = [[UIWindow alloc] initWithFrame:screenBounds]; 

     self.secondWindow.screen = secondScreen; 



     // Set up initial content to display... 

     // Show the window. 

     self.secondWindow.hidden = NO; 

    } 

} 

Как я сказал, что вы можете закодировать это таким образом, что он проверяет устройство поддерживает определенные разрешения, так что вы можете исключить из устройств, которые обыкновение поддерживать ваш UI

некоторые дополнительные ресурсы: https://developer.apple.com/airplay/