MPMoviePlayerController可以全屏旋转,而应用程序仅支持ios 7中的纵向方向

时间:2013-11-29 12:02:34

标签: ios objective-c iphone ios7 mpmovieplayercontroller

我在这里面对same problem。但我的应用程序在iOS 7上的工作方式不同。

在视频结束或退出全屏时,应用程序旋转保持横向模式。我手动将设备旋转到纵向位置,然后应用程序变为正常方向位置(纵向),不再更改。但是在视频结尾处的ios 6中,设备方向会自动回到正常位置。

有没有人有建议?

编辑:我现在才意识到。我的应用程序状态栏在视频结尾处是纵向方向。然而,该观点持有景观位置。我尝试重复旋转,然后修正了视图。

2 个答案:

答案 0 :(得分:2)

在AppDelegate.h中:

@property(nonatomic)BOOL allowRotation;
AppDelegate.m中的

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

    RootViewController * root = [[RootViewController alloc] init];
    self.window.rootViewController = root;

//add two Notification

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(MPVisionVideoNotification:) name:MPMoviePlayerWillEnterFullscreenNotification object:nil];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(MPVisionVideoNotification:) name:MPMoviePlayerWillExitFullscreenNotification object:nil];

    self.window.backgroundColor = [UIColor whiteColor];
    [self.window makeKeyAndVisible];
    return YES;
}

- (void) moviePlayerWillEnterFullscreenNotification:(NSNotification*)notification {
    self.allowRotation = YES;
}

- (void) moviePlayerWillExitFullscreenNotification:(NSNotification*)notification {
    self.allowRotation = NO;
}

-(NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
    if (self.allowRotation) {

        return UIInterfaceOrientationMaskLandscapeRight ;
    }
    return UIInterfaceOrientationMaskPortrait;
}

//this can rotate the windows when to fullscreen state

答案 1 :(得分:0)

最后,我解决了这个问题。我没有提到我曾经使用过第三方图书馆,这是“viewdeck II”。它破坏了旋转周期。

我建议谁遇到这种问题,检查第三方图书馆......