我可以在纵向模式中播放视频吗?

问题描述:

任何人都可以解释我如何在iphone设备中以纵向模式播放视频。如果您提供一些示例代码来进行参考,这将会非常有帮助。提前致谢。我可以在纵向模式中播放视频吗?

+0

这是一个重复的http://*.com/questions/1423610/how-to-play-movie-in-portrait-mode – 2009-12-28 15:35:46

我的建议是旋转视频,这样如果它在横向播放并且设备转向肖像,它将会正确定位。从那里,如果你不需要它们,你可以禁用这些控件(因此点击屏幕不会显示视频控件)。这样用户就不会知道玩家实际上是风景。

编辑:试试这个代码从这个线程在iPhoneDevSDK;我不知道这是否会工作,因为我没有用它,但:

MPMoviePlayerController *moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL fileURLWithPath:moviePath]]; 

[moviePlayer setOrientation:UIDeviceOrientationPortrait animated:NO]; 

编辑:哎呀!当我在该主题中进一步阅读时,Apple认为该方法是一个私有API,并可能会拒绝使用它的应用程序。虽然你可以尝试。

+0

我的需求不需要对视频的控制,但我怎样才能旋转视频(CGAffineTransformMakeRotation()可以做到这一点?)。这个领域是新的,你能提供一些示例代码。 – kmr 2009-12-28 05:45:01

+0

我试过了 - 如果你想用这个提交,Apple *会*拒绝你的应用!我们必须解决风景模式! – 2010-02-04 16:24:43

+0

Apple没有拒绝我的应用程序,但它在iOS 4.0中崩溃,所以我不得不改变它。 – Dimitris 2010-06-16 14:09:03

你想成为肖像取向?视频本身,你可以旋转任何方式,当你创建它;但是,重叠控件不能在SDK的边界内做任何事情。

最简单的方法是使用UIWebView播放视频,因为它支持两种方向。
下面是一些示例代码(注:web视图将产生一个新的模式视图视频播放的,所以我它的大小在零X零):

if(!webView) 
{ 
    self.webView = [[[UIWebView alloc] initWithFrame:CGRectZero] autorelease]; 
    [self.view addSubview:webView]; 
} 

NSURL *url = [NSURL URLWithString:@"http://myserver.com/movie.m4v"]; 
NSURLRequest *request = [NSURLRequest requestWithURL:url]; 
[webView loadRequest:request]; 

如果要纵向显示您的电影模式使用MPMoviePlayerController,它是更好的 让您的视频旋转90度,以便它始终在横向模式中播放,但在用户看起来像在纵向模式下播放...

我已经经历了这么多的窍门并发现上述为最佳替代。