Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/44.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在横向环境中全屏播放视频(iPhone)_Iphone_Objective C_Xcode - Fatal编程技术网

在横向环境中全屏播放视频(iPhone)

在横向环境中全屏播放视频(iPhone),iphone,objective-c,xcode,Iphone,Objective C,Xcode,我有一个应用程序,它构建为ViewController的层次结构 “视图控制器”的上一页用于应用程序的“视频部分” 该应用程序设计为仅为肖像,但是,我想强制视频在横向模式下全屏播放(就像iPhone上的iPod应用程序一样) 在四处搜索之后,我发现很多人都有这个问题 我终于能够旋转它了,但它不能在全屏下工作,默认为纵向 由于它不能在全屏上工作,您可以在视频的父视图中看到元素 是否有一种简单的方法可以全屏旋转此视频,或者在播放视频时必须向父视图广播消息以隐藏元素 代码如下: NSURL *

我有一个应用程序,它构建为ViewController的层次结构

“视图控制器”的上一页用于应用程序的“视频部分”

该应用程序设计为仅为肖像,但是,我想强制视频在横向模式下全屏播放(就像iPhone上的iPod应用程序一样)

在四处搜索之后,我发现很多人都有这个问题

我终于能够旋转它了,但它不能在全屏下工作,默认为纵向

由于它不能在全屏上工作,您可以在视频的父视图中看到元素

是否有一种简单的方法可以全屏旋转此视频,或者在播放视频时必须向父视图广播消息以隐藏元素

代码如下:

    NSURL *url = [NSURL URLWithString:[recipeData objectForKey:@"videoPath"]];

    MPMoviePlayerController *moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:url];  

    // Register to receive a notification when the movie has finished playing.  
    [[NSNotificationCenter defaultCenter] addObserver:self  
                                             selector:@selector(moviePlayBackDidFinish:)  
                                                 name:MPMoviePlayerPlaybackDidFinishNotification  
                                               object:moviePlayer];  


        moviePlayer.controlStyle =   MPMovieControlStyleFullscreen;
        moviePlayer.scalingMode = MPMovieScalingModeAspectFill;
        moviePlayer.shouldAutoplay = YES;  
        moviePlayer.view.frame = [[UIScreen mainScreen] applicationFrame];
        moviePlayer.view.transform = CGAffineTransformMakeRotation(1.57079633);
        moviePlayer.view.bounds = CGRectMake(0.0, 0.0, 480, 320);

        [self.view addSubview:moviePlayer.view];  
//commenting out the line below will rotate the video, leaving it uncommented forces it to play fullscreen in portrait
        [moviePlayer setFullscreen:YES animated:NO];  

您是否尝试过改用
mpmovieplayervewcontroller
?它提出了一个全屏几乎模态视图控制器来处理视频播放。我在>=3.2版本中使用了它,并在中使用了
MPMoviePlayerController
的黑客版本。您是否尝试过使用
MPMoviePlayerController
?它提出了一个全屏几乎模态视图控制器来处理视频播放。我在>=3.2版本中使用它,并在中使用黑客版本的
MPMoviePlayerController
,我在appDelegate中创建视频,并在视频启动时将其作为目标。这就做到了,让它凌驾于一切之上。

我将创建视频的方法放在appDelegate中,并在视频启动时将其锁定。这就做到了,让它凌驾于一切之上。

对于全屏播放,您应该使用MPMoviePlayServiceController,然后使用MPMoviePlayServiceController类上的“shouldAutorotateToInterfaceOrientation”方法以横向格式启动和播放

看起来像这样:

[yourInstanceOfMPMoviePlayerViewController shouldAutorotateToInterfaceOrientation: UIInterfaceOrientationLandscapeRight];

对于全屏播放,您应该使用MPMoviePlayServiceWController,然后使用MPMoviePlayServiceWController类上的“shouldAutorotateToInterfaceOrientation”方法使其以横向格式启动和播放

看起来像这样:

[yourInstanceOfMPMoviePlayerViewController shouldAutorotateToInterfaceOrientation: UIInterfaceOrientationLandscapeRight];

不幸的是,这并不存在;因为mpmovieplayervewcontroller是当前视图的子视图,所以也不能这样做。因此,您可以在视频上方看到父视图的菜单。[moviePlayer设置全屏:是动画:否];在我的原始片段中,将视频放在最高级别,只是将其锁定为纵向。这是一个奇怪的现象,我想不出修复方法,但使用MPMoviePlayerViewController并手动将帧设置为整个屏幕都可以工作,我相信(这对我来说是可行的;尽管这是一个大量的尝试和错误,而且代码相当松散)。我将创建视频的方法放在appDelegate中,并在视频启动时将其作为目标。这就成功了,让它凌驾于一切之上;因为mpmovieplayervewcontroller是当前视图的子视图,所以也不能这样做。因此,您可以在视频上方看到父视图的菜单。[moviePlayer设置全屏:是动画:否];在我的原始片段中,将视频放在最高级别,只是将其锁定为纵向。这是一个奇怪的现象,我想不出修复方法,但使用MPMoviePlayerViewController并手动将帧设置为整个屏幕都可以工作,我相信(这对我来说是可行的;尽管这是一个大量的尝试和错误,而且代码相当松散)。我将创建视频的方法放在appDelegate中,并在视频启动时将其作为目标。这就成功了,让它凌驾于一切之上。