1

我想在 AirPlay 屏幕上显示与 mainScreen 相同的内容,就像您在应用程序中将设备连接到 AirPlay 时默认那样。这自然是可以的工作。

但是我的第二个屏幕是 16:9,我的 iPad 是 4:3,我使用 vfr/Reader,我阅读的 pdf 是 16:9 当您以幻灯片模式启动 .pptx时,我想要实现的效果就像 PowerPoint 。它仅在第二个屏幕上以 16:9 显示 pptx。

我试过的是:https ://developer.apple.com/library/ios/documentation/WindowsViews/Conceptual/WindowAndScreenGuide/UsingExternalDisplay/UsingExternalDisplay.html#//apple_ref/doc/uid/TP40012555-CH3-SW1

我可以实现的是让第二个屏幕更大的全宽和红色背景:

   if (_secondWindow)
    {
        NSLog(@"INIT SECOND WINDOW");
        _secondWindow = [[UIWindow alloc] initWithFrame:screenBounds];
        _secondWindow.backgroundColor = [UIColor redColor];

        _secondWindow.screen = newScreen;
        _secondWindow.hidden = NO;

        //change size to 200 200 
        //_secondWindow.frame = CGRectMake(0, 0, 200,200);

        // Set the initial UI for the window.

    }

我需要说的是把我的主要当前寡妇的内容复制到不同大小的 _secondWindow 中。

当我这样做时:

_secondWindow = [[[UIApplication sharedApplication] delegate] window];

我在第二个屏幕上有 mainWindow 内容,但大小没有改变。我只需要强制镜像屏幕的大小,在镜像屏幕上缩放我的内容。保持同步

有没有办法做到这一点?我在一些帖子上看到,两个屏幕不可能有相同的实例,有没有比使用 vfr/Reader 更好的方法,比如让阅读器在两个 webView 或其他东西中?或者在这种情况下可以做的最大值只是将当前的pdf复制为第二个屏幕上的png(但保持高分辨率质量)?

但是当您的应用程序中有视频时它是如何工作的,您需要处理每种情况吗?

4

1 回答 1

0

您需要使用以下方法创建一个全新的显示:

- (void)handleScreenDidDisconnectNotification:(NSNotification*)aNotification

- (void)handleScreenDidConnectNotification:(NSNotification*)aNotification

然后,当您获得该屏幕时,您可以使用全分辨率。

为了利用第二个屏幕的完整高度和高度(无边框),您需要:

secondScreen.overscanCompensation=UIScreenOverscanCompensationNone;

其中“secondScreen”是 AirPlay:(UIScreen)。

注意 UIScreenOverscanCompensationNone 是在 IOS 9 中引入的,将 overscanCompensation 设置为 3 也适用于较旧的 IOS 版本,但是我不知道兼容性问题,因为我只针对 IOS 9 或更高版本。

/安德斯

于 2016-03-09T15:45:25.980 回答