2011-02-15 83 views
0

我想在启动应用程序时以横向模式显示MPMoviePlayer。现在它以纵向模式开始。有一些代码强制应用程序在横向模式下启动。但据说这些代码段属于私有API,因此应用商店不会接受该应用程序。自从早上我试图找到一种方式,但没有结果...任何人都可以帮助我吗?风景模式下的iPhone MPMoviePlayer

这是我在哪里:

NSURL * URL = [[NSURL的alloc] initWithString:urlString];

moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:url]; 
moviePlayer.controlStyle = MPMovieControlStyleFullscreen; 

[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(videoPlayerPlaybackStateChanged:) 
              name:MPMoviePlayerPlaybackStateDidChangeNotification 
              object:nil]; 

[self setWantsFullScreenLayout:YES]; 
[moviePlayer prepareToPlay]; 
//For viewing partially..... 
moviePlayer.view.backgroundColor = [UIColor blackColor]; 
//[moviePlayer.view setFrame:CGRectMake(0, 0, 320, 410)]; 
[moviePlayer.view setFrame:[self.view bounds]]; 
moviePlayer.fullscreen = YES; 
moviePlayer.scalingMode = MPMovieScalingModeAspectFill; 


[self.view addSubview:moviePlayer.view]; 

//[[UIApplication sharedApplication] setStatusBarHidden:YES animated:NO]; 
[moviePlayer play]; 

预先感谢..

+0

你有没有找到任何解决方案? – Mangesh 2013-05-31 18:39:52

回答

0

在Xcode资源组下打开项目的Info.plist。 选择最后一行并单击+(加号)图标。现在选择'初始界面方向'键作为值'横向(左主页按钮)'。 或者您可以从点击下拉按钮时显示的列表中选择任何值。

+0

谢谢你的快速回答,但我已经尝试过。模拟器再次回到肖像模式。我没有得到理由.. – gurkan 2011-02-15 15:07:57

0

如果您的所有应用都将处于风景中,您可以在项目的plist上更改它。如果不是,您也可以继承MPMoviePlayerControllerView并实现并执行类似的操作。

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation) 
interfaceOrientation { 
    // Return YES for supported orientations. 
    if (interfaceOrientation == UIInterfaceOrientationLandscapeLeft 
     || interfaceOrientation == UIInterfaceOrientationLandscapeRight) { 
    return YES; 
    } 

    return NO; 
} 
+0

好的。谢谢。这个工作正常。但是,当我将这个viewController传递给navigationController时,我的意思是[self.navigationController pushViewController:“bla bla”],从下一个视图返回后它的方向仍然是横向,但视图内的内容现在是纵向。购买方式,MPMoviePlayerView之后的下一个视图是肖像。 – gurkan 2011-02-15 15:10:53

0

使用MPMoviePlayerViewController,而不是MPMoviePlayerController。它会处理方向,控制方式等。我把它称为https://stackoverflow.com/a/4911172/3346048

MPMoviePlayerViewController *playerView = [[[MPMoviePlayerViewController alloc] initWithContentURL:videoURL] autorelease]; 
[self presentMoviePlayerViewControllerAnimated:playerView]; 

并在AppDelegate.m声明以下函数。这将限制在任何情况下肖像的方向,只会改变视频播放时:

- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window 
{ 
    if ([[self.window.rootViewController presentedViewController] isKindOfClass:[MPMoviePlayerViewController class]]) 
    { 
     return return UIInterfaceOrientationMaskLandscape; 
    } 

}