简体   繁体   English

用于MPMoviePlayerViewController的UIDeviceOrientation

[英]UIDeviceOrientation for MPMoviePlayerViewController

I am working on a app in which I have a list of items where i want to click on a thumbnail and video must be played, My requirement is Only MPMovieViewController must rotate remaining screens must not rotate for this I am using below method in list to make it portrait every time. 我正在使用一个应用程序,其中有一个要单击缩略图的项目列表,必须播放视频,我的要求是仅MPMovieViewController必须旋转其余屏幕,不能旋转,为此我在列表中使用以下方法每次都使其肖像。 But if i am using it i am not able to rotate the MPMoviePlayerViewController. 但是,如果我使用它,则无法旋转MPMoviePlayerViewController。

- (NSUInteger)supportedInterfaceOrientations{

    return (UIInterfaceOrientationMaskPortrait);
}

So i returned "UIInterfaceOrientationMaskAll" after returning i am able to Autorotate the MPMoviePlayerViewController But when i come back clicking on done Button or after video is done when video is in landscape mode then my previous is rotating but i dont want that behaviour i need the previous view in portrait, Below is code for implementing the MPMoviePlayerViewContoller. 所以我在返回后返回了“ UIInterfaceOrientationMaskAll”,我能够自动旋转MPMoviePlayerViewController,但是当我再次单击完成按钮时,或者在视频处于横向模式时完成视频之后,我的前一个正在旋转,但是我不希望这种行为我需要上一个以纵向视图显示,以下是用于实现MPMoviePlayerViewContoller的代码。

    NSString *filepath   =   [[NSBundle mainBundle] pathForResource:[exeDict objectForKey:@"longVideoName"] ofType:@"mp4"];

    NSURL    *fileURL    =   [NSURL fileURLWithPath:filepath];

    moviePlayerController = [[MPMoviePlayerViewController alloc] initWithContentURL:fileURL];
    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(moviePlaybackComplete:)
                                                 name:MPMoviePlayerPlaybackDidFinishNotification
                                               object:moviePlayerController.moviePlayer];

    [moviePlayerController.view setFrame:CGRectMake(0, 0, 320, 480)];

    moviePlayerController.moviePlayer.controlStyle = MPMovieControlStyleFullscreen;
    moviePlayerController.view.userInteractionEnabled =YES;

    [moviePlayerController shouldAutorotateToInterfaceOrientation:UIInterfaceOrientationMaskAll];

//    AppDelegate* myDelegate = (((AppDelegate*) [UIApplication sharedApplication].delegate));
//    [myDelegate.window addSubview:moviePlayerController.view];

    MainViewController* mainViewController = (MainViewController*)self.mainViewDelegate;

    [mainViewController presentMoviePlayerViewControllerAnimated:moviePlayerController];

    [moviePlayerController.moviePlayer play];

Please let me know how to get it. 请让我知道如何获得它。

您必须将代码放入viewwillappear()方法中,以便您的列表以纵向模式显示

- (BOOL)shouldAutorotate
{
    return NO;
}

Implemented above code in mainViewController?? 在mainViewController中实现以上代码?

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM