私のアプリケーションでAirPlayサポートを有効にしようとしています。私はビデオをやっていません。私は外部ディスプレイを「第2のディスプレイ」として使用したい。iOS AirPlay:ミラーリングがオンの場合、私のアプリには外部ディスプレイのみが通知されますか?
ここに私の問題があります:私がAirPlayボタンから「AppleTV」を選択した場合、私のアプリは通知を受けません。私のアプリが通知する唯一の時間は、私が自分のアプリケーションを終了し、OSレベルのAirPlayボタンに行き、そこで「AppleTV」を選択し、ミラーリングをオンにすることです。ミラーリングをオフにすると、私のアプリは外部ディスプレイが消えたことを知らされます。
ので:私は私のアプリ内で から、外部ディスプレイを選ぶ際
- はなぜ私のアプリには通知されませんか?
- ミラーリングをオンにしたときに、外部ディスプレイの が存在することがアプリに通知されるのはなぜですか。私は明らかに何かを誤解していますが、ミラーリングをオンにしたように見えるのは、外部ディスプレイが消えてしまったことを私のアプリに知らせるべきです(OSは現在、外部ディスプレイをミラーリングのために使用しているはずです)。
以下のコードサンプル。助けをあらかじめありがとう!
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
// Is there already an external screen?
if (UIScreen.screens.count > 1)]
{
[self prepareExternalScreen:UIScreen.screens.lastObject];
}
// Tell us when an external screen is added or removed.
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(externalScreenDidConnect:) name:UIScreenDidConnectNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(externalScreenDidDisconnect:) name:UIScreenDidDisconnectNotification object:nil];
self.viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
self.window.rootViewController = self.viewController;
// Add AirPlay control to view controller.
MPVolumeView* airplayButtonView = [[MPVolumeView alloc] init];
airplayButtonView.frame = CGRectMake(300, 300, 50, 50);
airplayButtonView.backgroundColor = [UIColor blackColor];
airplayButtonView.showsVolumeSlider = NO;
airplayButtonView.showsRouteButton = YES;
[self.viewController.view addSubview:airplayButtonView];
[self.window makeKeyAndVisible];
return YES;
}
#pragma mark - External screen handling
- (void)externalScreenDidConnect:(NSNotification*)notification
{
[self prepareExternalScreen:notification.object];
}
- (void)externalScreenDidDisconnect:(NSNotification*)notification
{
// Don't need these anymore.
self.externalWindow = nil;
}
- (void)prepareExternalScreen:(UIScreen*)externalScreen
{
NSLog(@"PREPPING EXTERNAL SCREEN.");
self.viewController.view.backgroundColor = [UIColor blueColor];
CGRect frame = externalScreen.bounds;
self.externalWindow = [[UIWindow alloc] initWithFrame:frame];
self.externalWindow.screen = externalScreen;
self.externalWindow.hidden = NO;
self.externalWindow.backgroundColor = [UIColor redColor];
}
ありがとうございます。そして、うんざりしている:Appleはこれに関してUIでひどい仕事をしたようだ。 –
これはまだですか?私はこの投稿がかなり古くて、私は道を探しているのを見る。 – VaporwareWolf