2016-03-08 26 views
0

我試圖通過airplay連接蘋果電視,但問題是有些時候,如果我連接任何其他外部設備,如藍牙或其他設備,它顯示像連接在窗口中的設備。所以我想確定哪些設備連接,我必須啓用只有當蘋果電視連接。如何區分蘋果電視和其他播放器?

如何識別是蘋果電視還是其他設備?

該如何創建自定義的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這樣做,但它後面的代碼/功能似乎並不能得到的。

你可以做的最好的監視器是用於監視正在添加/刪除的其他屏幕,然後僅當屏幕具有執行所需功能的功能時顯示外部內容。

我已經在某處讀過,可以獲得airplay設備的功能,並使用這些信息來檢測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/

相關問題