1

アプリ内でデバイスをAirPlayに接続すると、デフォルトで表示されるように、メイン画面と同じコンテンツをAirPlay画面に表示したいと思います。これで自然に作業OKです。

しかし、私の 2 番目の画面は 16:9 で、私の iPad は 4:3 で、vfr/Reader を使用し、読んだ PDF は 16:9 です。私が達成したいのは、スライドショー モードで .pptx を起動したときの PowerPoint のようなものです。2番目の画面に16:9でのみpptxを表示します。

私が試したのはこれです:

私が達成できることは、2番目の画面を赤い背景で全幅を大きくすることです:

   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];

2 番目の画面に mainWindow のコンテンツがありますが、サイズは変わりません。ミラーリング画面のサイズを強制し、ミラーリング画面でコンテンツをスケーリングするだけです。同期を維持する

これを達成する方法はありますか?いくつかの投稿で、2 つの画面に同じインスタンスを使用することは不可能であることがわかりました。vfr/Reader を使用するよりも、2 つの webView などでリーダーを使用するよりも良い方法はありますか? または、この状況でできる最大のことは、現在の pdf を png として複製することだけです (ただし、高解像度の品質を維持します)。

しかし、アプリにビデオがある場合、それぞれのケースを処理する必要があるのでしょうか?

4

1 に答える 1

0

以下を使用して、まったく新しいディスプレイを作成する必要があります。

- (void)handleScreenDidDisconnectNotification:(NSNotification*)aNotification

- (void)handleScreenDidConnectNotification:(NSNotification*)aNotification

次に、その画面を取得したら、フル解像度を利用できます。

2 番目の画面 (境界線なし) の幅と高さをフルに活用するには、次のことを行う必要があります。

secondScreen.overscanCompensation=UIScreenOverscanCompensationNone;

「secondScreen」は AirPlay: (UIScreen) です。

UIScreenOverscanCompensationNone が IOS 9 で導入されたことに注意してください。overscanCompensation を 3 に設定すると、古い IOS バージョンでも機能しますが、IOS 9 以降のみを対象としているため、互換性の問題は不明です。

/アンダース

于 2016-03-09T15:45:25.980 に答える