0

오리엔테이션 문제를 해결하기 위해 올바른 코드를 찾는 데 2 ​​시간을 소비했습니다. 이것은 내 영화 플레이어 코드입니다. 나는이 특별한 풍경을 풍경으로 보여줄 필요가있다.IOS6에서 MPMoviePlayerController에 대해 하나의보기 만 제공하는 방법

내가 모든 방향을 설정하고 내 rootviewcontroller 내 세트는 초상화로만, 내 영화 플레이어보기에서는 운이 아닌 풍경으로 표시됩니다. 아무도 내게 문제를 해결하는 방법에 대한 의견을 좀 주시겠습니까?

- (NSUInteger)application:(UIApplication*)application supportedInterfaceOrientationsForWindow:(UIWindow*)window 
{ 
    return UIInterfaceOrientationMaskAll; 
} 

내 rootviewcontroller

- (BOOL)shouldAutorotate 
{ 
    return NO; 
} 
- (NSUInteger)supportedInterfaceOrientations 
{ 
    return UIInterfaceOrientationMaskPortrait; 
} 


-(void)prepareIntroVideo 
{ 
    NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle]pathForResource:@"designthinking_pt1" ofType:@"mp4"]]; 
    self.playercontroller = [[MPMoviePlayerController alloc] initWithContentURL:url]; 
    [self.playercontroller.view setFrame:CGRectMake(0, -20, 320, 480)]; 
    self.playercontroller.movieSourceType = MPMovieSourceTypeFile; 
    self.playercontroller.scalingMode = MPMovieScalingModeAspectFill; 
    self.playercontroller.fullscreen = NO; 
     self.playercontroller.controlStyle = MPMovieControlStyleFullscreen; 
    //playercontroller.controlStyle = MPMovieControlStyleFullscreen; 
    self.playercontroller.view.userInteractionEnabled =YES; 
    self.playercontroller.view.backgroundColor = [UIColor blackColor]; 
    self.playercontroller.shouldAutoplay = NO; 

    //playercontroller.repeatMode = YES; 
    [[NSNotificationCenter defaultCenter] addObserver:self 
              selector:@selector(moviePlaybackComplete:) 
               name:MPMoviePlayerPlaybackDidFinishNotification 
               object:self.playercontroller]; 


    [[NSNotificationCenter defaultCenter] addObserver:self 
              selector:@selector(applicationDidEnterBackground) 
               name: UIApplicationDidEnterBackgroundNotification 
               object:[UIApplication sharedApplication]]; 

    [[NSNotificationCenter defaultCenter] addObserver:self 
              selector:@selector(applicationWillEnterForeground) 
               name:UIApplicationWillEnterForegroundNotification 
               object:[UIApplication sharedApplication]]; 


    [self.playercontroller prepareToPlay]; 
    [self.view addSubview:self.playercontroller.view]; 
    [self.playercontroller setFullscreen:YES animated:YES]; 


    //[self.playercontroller stop]; 
    [self.view sendSubviewToBack:self.playercontroller.view]; 

} 

- (BOOL)shouldAutorotate 
{ 
    return YES; 
} 
- (NSUInteger)supportedInterfaceOrientations 
{ 
    return UIInterfaceOrientationLandscapeLeft; 
} 
+0

그래서 ... 업데이트가 있습니까? – TonyMkenu

답변

2

당신은 내 예를 확인하실 수 있습니다를 구현하는 함께 할 수있는 뭔가가 있었다 https://dl.dropboxusercontent.com/u/19438780/testRotate.zip

을 알고있다 - 초상화; 이것을 위해 "서브 클래 싱"nav 컨트롤러 (여기에 세로 방향의 "회전"코드)가 있습니다.

세 번째 컨트롤러는 가로 방향입니다. 회전하려는 경우 모달로 표시해야합니다. 그에 따라 회전 코드를 입력하십시오.

+0

안녕하세요 @tonyMkenu, 나는 그것을 시도했지만 내 경우에는 작동하지 않습니다, 내가 코드를 잠깐 올리 자. – Desmond

1

내가 preferredInterfaceOrientationForPresentation에 볼 것, 내가 몇 달 전에이 문제에 일주일 정도 보냈다. 나는 그것을 해결하는 방법을 내가 정확히 기억하지 않습니다하지만 난 네비게이션 컨트롤러 2 컨트롤러가 ... 그것은 그 방법

관련 문제