在 iOS 中单击全屏按钮时可以强制 MPMoviePlayerController 横向

Posted

技术标签:

【中文标题】在 iOS 中单击全屏按钮时可以强制 MPMoviePlayerController 横向【英文标题】:Can be force MPMoviePlayerController to landscape when click on Fullscreen button in iOS 【发布时间】:2013-09-13 09:46:13 【问题描述】:

我在 detailView(UIVIew) 中创建了一个 MPMoviePlayerController,现在我想在用户单击全屏按钮时强制 MPMoviePlayerController 为横向视图。我可以这样做吗?请给我任何建议。在此先感谢。这是我要创建的代码:

   NSURL *movieURL = [NSURL URLWithString:previewString];
    movieController = [[MPMoviePlayerController alloc] initWithContentURL:movieURL];
    [movieController.view setFrame:CGRectMake(10,130, 275 , 150)];
    movieController.view.backgroundColor = [UIColor grayColor];
    [detailview addSubview:movieController.view];
    [movieController prepareToPlay];
    movieController.shouldAutoplay = NO;

和willEnterFullscreen()函数:

    - (void)willEnterFullscreen:(NSNotification*)notification 
    NSLog(@"willEnterFullscreen");
    donepress = YES;
    // nothing

我尝试了搜索,但仍然没有任何好的答案。请帮我。非常感谢

【问题讨论】:

你试过 MPMoviePlayerWillEnterFullscreenNotification 吗? @PoojaBohora: 我添加了 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(willEnterFullscreen:) name:MPMoviePlayerWillEnterFullscreenNotification object:nil];在视图中会出现 您可以旋转视图,因为我们无法强制设置方向。 @PoojaBohora:我只想在单击全屏按钮时以横向观看电影播放器​​。 我也想做同样的事情,我通过旋转视图来做到这一点。试一次。它会解决你的问题。 【参考方案1】:

是的,您可以使用两个通知观察者来更改完整方向。

首先,在您的 AppDelegate didFinishLaunchingWithOptions 方法中添加两个通知观察者:

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

二、添加方法和属性

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

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

第三,重写supportedInterfaceOrientationsForWindow方法,你可以返回任何你想要的方向

-(NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window

    if (self.allowRotation) 
        return UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskLandscapeLeft | UIInterfaceOrientationMaskLandscapeRight;
    
    return UIInterfaceOrientationMaskPortrait;

【讨论】:

#import

以上是关于在 iOS 中单击全屏按钮时可以强制 MPMoviePlayerController 横向的主要内容,如果未能解决你的问题,请参考以下文章

单击按钮时android videoview全屏

强制 iOS iPhone youtube 嵌入播放器退出全屏

从 MasterViewController 呈现的 ModalView 在 iOS 5.1 中不再是全屏

iOS 通过单击按钮在解析服务器连接之间切换

单击 Safari 上的后退按钮时使用 React 挂钩强制页面重新加载

是否可以以编程方式强制 iOS 应用程序在拆分视图/滑动中在 ios9 中全屏显示?