Я рассматриваю возможность добавления возможностей AirPlay к одному из моих ViewControllers. Контроллер View просто показывает UIWebView. Я хочу добавить кнопку, которая отобразит этот контент на Apple TV. Я знаю, что общесистемное зеркалирование может быть сделано, но оно не заполняет весь экран, вокруг него есть черные полосы. Я искал в Интернете, но большинство всего, что я нашел, это путь назад с iOS 5 и устаревший. Мог ли кто-нибудь указать мне в сторону учебника или библиотеки сбрасывания, которые помогут? Мне просто нужно это, чтобы отразить содержимое только одного представления, чтобы быть полноэкранным на Apple TV.iOS AirPlay Second Screen Tutorial
До сих пор вот что я сделал, но я считаю, что он создает только второе Окно, не вкладывая в него ничего.
В AppDelegate я создаю свойство для него:
@property (nonatomic, retain) UIWindow *secondWindow;
В didFinish методе AppDelegate я бегу:
NSNotificationCenter *center = [NSNotificationCenter defaultCenter];
[center addObserver:self selector:@selector(handleScreenDidConnectNotification:)
name:UIScreenDidConnectNotification object:nil];
[center addObserver:self selector:@selector(handleScreenDidDisconnectNotification:)
name:UIScreenDidDisconnectNotification object:nil];
Тогда в AppDelegate у меня есть:
- (void)handleScreenDidConnectNotification:(NSNotification*)aNotification
{
UIScreen *newScreen = [aNotification object];
CGRect screenBounds = newScreen.bounds;
if (!self.secondWindow)
{
self.secondWindow = [[UIWindow alloc] initWithFrame:screenBounds];
self.secondWindow.screen = newScreen;
// Set the initial UI for the window.
}
}
- (void)handleScreenDidDisconnectNotification:(NSNotification*)aNotification
{
if (self.secondWindow)
{
// Hide and then delete the window.
self.secondWindow.hidden = YES;
self.secondWindow = nil;
}
}
В viewController, в котором я хотел бы разрешить зеркалировать WebView на Apple TV, у меня есть:
- (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;
appDelegate.secondWindow = [[UIWindow alloc] initWithFrame:screenBounds];
appDelegate.secondWindow.screen = secondScreen;
// Set up initial content to display...
// Show the window.
appDelegate.secondWindow.hidden = NO;
NSLog(@"YES");
}
}
Я получил все это от here. Однако это все, что он показывает, поэтому я не уверен, как получить контент на этом экране.
Вы когда-нибудь придумывали решение? Я пытаюсь сделать то же самое прямо сейчас. – Daniel
@ Даниэль К сожалению, нет, я этого не сделал. Я прибегал к тому, чтобы люди отображали экраны экрана в эфире, что не так элегантно и полезно, но хорошо. 5000 просмотров не могут понять это. – user717452