2

iPhone 4S を使用して AirPlay をいじっていますが、問題が発生しています。Apple TV 2 を最新 (4.4.3 だと思いますか? 忘れてしまいました。別の部屋にあり、チェックするのが面倒です) に更新し、Xcode 4.2 Build 4D199 を使用している間、4S で iOS 5.0 を使用しています。 . 利用可能な場合に 2 番目の画面に描画しようとする単純な UIView アプリを作成しました。これが私のviewDidLoadにあるものです:

- (void)viewDidLoad
{
    [super viewDidLoad];
    [self.view addSubview:[[MPVolumeView alloc] initWithFrame:CGRectMake(0, 0, 320, 50)]];
    NSLog(@"Registering for screen connect events...");
    // Do any additional setup after loading the view, typically from a nib.
    [[NSNotificationCenter defaultCenter]
     addObserver:self
     selector:@selector(screenDidConnect:)
     name:UIScreenDidConnectNotification
     object:nil];
    [[NSNotificationCenter defaultCenter]
     addObserver:self
     selector:@selector(screenDidDisconnect:)
     name:UIScreenDidDisconnectNotification
     object:nil];    NSLog(@"There are %i connected screens.", ScreenCount);
    if (ScreenCount > 1) {
        self.secondWindow = [self myScreenInit:[[UIScreen screens] objectAtIndex:1]];
        [self.secondWindow addSubview:[self createFullscreenViewForText:@"Second window" withSize:CGSizeMake(640, 480)]];
    }
}

このコードは、TV Out を有効にするとシミュレータで機能しますが、デバッグ中に TV Out を有効にすると常にクラッシュします。シミュレーターのハードウェア メニューで TV 出力を有効にした後、アプリを再起動する必要があります。再起動すると、2 番目の画面に 2 番目の画面の UILabel が表示されます。iPhone 4S では、実行中のタスク バーの左側にある AirPlay コントロールを使用して AirPlay を有効にした場合にのみ、これを機能させることができます。起動時にビューに MPVolumeView コンポーネントを追加したことに注意してください。これを使用して Apple TV に接続しようとしても無駄です。

アプリ内の MPVolumeView を使用すると、Apple TV から正常に切断できますが、再度使用して Apple TV を選択して再接続すると、UIScreenDidConnectNotification が取得されません。2 つ目の画面が表示されるのは、ミラーリングを有効にしたときだけです。いずれかの AirPlay コントロールに接続すると、1 画面しかカウントされず、通知が届きません。また、ミラーリングを有効にするたびに、コンソール ログに次のように表示されます。

Could not find mapped image ColorOnGrayShadow_AirPlay.png

これは壊れているようで、他の人がこの分野でどのような経験をしたか知りたい. 新しいことを学びながら、この投稿をいじくり回して更新し続けます。

4

1 に答える 1

5

MPVolumeView のルート メニューは、AppleTV へのオーディオ ストリームのみを制御できます。あなたがやろうとしていることの実例を次に示します: https://github.com/quellish/AirplayDemo/

「ColorOnGrayShadow_AirPlay.png」ログ メッセージは、iOS 5 では正常です。Airplay に接続された AppleTV を外部ディスプレイとして使用するには、残念ながらミラーリングが必要であり、アプリ内からミラーリングを有効にすることはできません。ユーザーは次の指示に従う必要があります。

http://support.apple.com/kb/TS4085

于 2012-01-27T00:57:29.287 に答える