2011-11-26 4 views
2

iPhone 4S를 사용하여 AirPlay를 가지고 놀고 있는데 문제가 있습니다. Apple TV 2를 최신 버전으로 업데이트했습니다 (4.4.3 생각하니? 다른 방에 있는데 너무 게으르다.) Xcode 4.2 Build 4D199를 사용하는 동안 내 4S에 iOS 5.0이 있습니다. . 사용 가능한 두 번째 화면에서 그릴 시도 간단한 UIView 응용 프로그램을 썼습니다. 여기에 내가있는 viewDidLoad에있는 내용은 다음과 같습니다 디버그에있는 동안 나는 TV 출력을 사용하도록 설정하면 항상 충돌하지만 내가 TV 출력을 사용하도록 설정하면iOS 5+ AirPlay를 두 번째 화면으로 사용하는 방법

- (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를 활성화 한 후에 앱을 다시 시작해야합니다. 다시 시작하면 두 번째 화면에 두 번째 화면 UILabel이 표시됩니다. iPhone 4S에서는 왼쪽의 실행중인 작업 표시 줄에서 AirPlay 컨트롤을 사용하여 AirPlay를 사용하도록 설정 한 경우에만이 작업을 수행 할 수 있습니다. MPVolumeView 구성 요소를 내 Apple TV에 ​​연결하는 데 사용하려고 시도한 뷰에 추가했음을 알 수 있습니다.

in app MPVolumeView를 사용하면 Apple TV와 성공적으로 연결을 끊을 수 있지만 다시 사용하고 Apple TV를 선택하여 다시 연결하면 UIScreenDidConnectNotification을 얻지 못합니다. 다시 미러링을 사용하도록 설정하면 두 번째 화면이 표시됩니다. AirPlay 컨트롤 중 하나에 연결하면 화면이 1 회로 만 표시되고 알림을받지 못합니다. 또한, 나는 미러링 가능마다 나는 콘솔 로그에서 볼이 깨진 것 같다 내가 다른 사람의 경험이 지역에 있었던 것을 알고 싶습니다

Could not find mapped image ColorOnGrayShadow_AirPlay.png 

. 나는 새로운 것들을 배우면서 주위를 돌아 다니며이 포스트를 업데이트 할 것입니다.

+0

나는 MPVolumeView가 다른 화면을 제공하지와 동일한 문제에 봉착했습니다. 두 번째 디스플레이에 콘텐츠를 가져 오는 동안 문제가 발생했지만 창 개체를 유지하지 않았기 때문에 문제가 발생했습니다. 그래도이 작업을 수행하려면 미러링을 사용하지 않아도 좋습니다. – Jeff

+0

안녕 절벽 - 어떻게 다른 화면에서 하나의 화면을 제어하는 ​​아이디어? 나는 그것을하는 방법을 이해할 수 없다. 감사! – TommyG

+0

AirPlay를 통해 두 번째 화면을 제어하려는 경우 AirPlay의 API를 사용하여 두 번째 화면에 액세스해야합니다. 하나에 대한 참조가 있으면 그 위에 원하는 것을 그릴 수 있습니다. – Cliff

답변

5

MPVolumeView의 경로 메뉴는 AppleTV로 전송되는 오디오 스트림 만 제어 할 수 있습니다. ' https://github.com/quellish/AirplayDemo/

은 "ColorOnGrayShadow_AirPlay.png"로그 메시지가 외부 디스플레이가 불행하게도 미러링을 필요로 애플 TV를 연결 아이폰 OS 에어 플레이를 사용하여 5. 정상입니다, 당신은 할 수 있습니다 여기 당신이 뭘 하려는지의 작업 예제 앱 내부에서 활성화하십시오. 사용자는이 지침에 따라 있습니다

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

+0

고마워요. 나는 시행 착오로 똑같은 것을 배웠다. 실제로 사용자가 모든 작업을 위해 미러링을 수동으로 활성화해야한다는 것은 분명하지 않습니다. 다행히도 미래의 업데이트는 언젠가를 다룰 것입니다. – Cliff

+0

설명서에 bugreporter.apple.com에 짧은 개선 요청을 입력하면 미러링이 필요함을 명확히하기 위해 문서 업데이트 우선 순위를 지정할 수 있습니다. 이 문제에 대한 더 많은 요청이 제출 될수록 좋습니다. – quellish

+0

@quellish AirplayDemo를 제공해 주셔서 감사합니다. – tobinjim