2011-01-06 3 views
3

현재 iPad에서 외부 디스플레이로 비디오를 출력 할 때 컨트롤과 모든 것을 외부 디스플레이로 이동합니다. 이 기능은 컨트롤이 외부 디스플레이에있는 동안 동영상을 제어 할 수 없기 때문에 유용하지 않습니다. 다음은 앱의 일부 코드입니다.ipad의 컨트롤을 사용하여 외부 디스플레이에 비디오를 출력하는 방법은 무엇입니까?

[self setupExternalScreen]; //Calls the code above 
MPMoviePlayerViewController *mpv = [[MPMoviePlayerViewController alloc] initWithContentURL:url]; 
[self presentMoviePlayerViewControllerAnimated:mpv]; 

제가 또한 MPMoviePlayerController 있고 또한 이것을 시도 :이 MPMoviePlayerViewController의 창조가

if ([[UIScreen screens] count] > 1) { 
    external_disp = [[UIScreen screens] objectAtIndex:1]; 
    [external_disp setCurrentMode:[[external_disp availableModes] objectAtIndex:0]]; 
    self.external_window = [[UIWindow alloc] init]; 
    external_window.screen = external_disp; 
    [external_window makeKeyAndVisible]; 
} 

(setupExternalScreen라는 메소드)

화면 설정 코드 :

self.moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:url]; 
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playerDidFinish:) name:MPMoviePlayerDidExitFullscreenNotification object:[self moviePlayer]]; 
[self.view addSubview:moviePlayer.view]; 

if (!external_window) { 
    [self setupExternalScreen]; 
} 
if (external_window) { 
    [external_window addSubview:moviePlayer.view]; 
} 
[moviePlayer setControlStyle:MPMovieControlStyleDefault]; 

[moviePlayer setFullscreen:YES];// animated:NO]; 

if (![moviePlayer isPreparedToPlay]) [moviePlayer prepareToPlay]; 
[moviePlayer play]; 

현재 두 번째 구현에서는 addi self.view와 external_window 모두에서 외부 디스플레이 (컨트롤 포함)에 비디오를 표시하고 iPad 컨트롤은 영화 컨트롤이 사라질 때 사라지는 상태 표시 줄 외에는 아무 것도 일어나지 않는 것처럼 보입니다. 나는 또한 movie.player.view를 self.view에 추가하려고 시도했으며, iPad에서 영화를 재생하기 전에 "tv on content"메시지의 효과를 깜박입니다. 현재 비디오는 버튼을 눌러 실행됩니다. 시뮬레이터와 TV 출력 옵션을 사용하면 디버깅이 쉬워집니다. Xcode 버전 3.2.5와 iOS의 최신 버전을 실제 장치에 설치하십시오. 이 문제를 어떻게 해결할 수 있습니까? 그것은 iPad에서 유튜브 애플 리케이션처럼 행동해야합니다.

답변

2

쉬운 방법은 UIWebView를 사용하는 것입니다. 자동으로 외부 모니터를 감지하고 장치의 표준 재생 제어를 유지하면서 비디오를 표시합니다.

- (void)embedInternalVideo:(CGRect)frame { 
    NSBundle *bundle = [NSBundle mainBundle]; 
    NSString* html = @"<video src=\"sample_iPod.m4v\" width=640 height-480 controls autoplay></video>"; 
    if (videoView == nil) { 
     videoView = [[UIWebView alloc] initWithFrame:frame]; 
     [self.view addSubview:videoView]; 
    } 
    [videoView loadHTMLString:html baseURL:[bundle resourceURL]];  
} 
+0

이 뛰어나, 내가 찾던 그냥 뭐 :

는 여기에 몇 가지 예제 코드입니다. 6 개월 전부터 아무도 솔루션을 게시하지 않은 것이 너무 나빴습니다. – Kaili

+0

iOS9에서 작동하지 않습니다. – Chris

관련 문제