Iphone MPMoviePlayerController全屏模式问题

Iphone MPMoviePlayerController全屏模式问题,iphone,ios,mpmovieplayercontroller,Iphone,Ios,Mpmovieplayercontroller,我播放视频文件的代码有问题。每当我以全屏模式播放文件时,播放不会占据我的所有屏幕。以下是相关代码: NSURL *url = [NSURL fileURLWithPath:@"Somefile.mov"]; moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:url]; [moviePlayer setControlStyle:MPMovieControlStyleFullscreen];

我播放视频文件的代码有问题。每当我以全屏模式播放文件时,播放不会占据我的所有屏幕。以下是相关代码:

     NSURL *url = [NSURL fileURLWithPath:@"Somefile.mov"];
     moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:url];
    [moviePlayer setControlStyle:MPMovieControlStyleFullscreen];
    [moviePlayer setFullscreen:YES];
    moviePlayer.view.frame = self.switchView.frame;
    [self.switchView addSubview:moviePlayer.view];

    [[NSNotificationCenter defaultCenter] 
    addObserver:self
    selector:@selector(movieFinishedCallback:)                                                 
    name:MPMoviePlayerPlaybackDidFinishNotification
    object:moviePlayer];

    [[NSNotificationCenter defaultCenter] 
     addObserver:self
     selector:@selector(playbackStateDidChange:)                                                 
     name:MPMoviePlayerPlaybackStateDidChangeNotification
     object:moviePlayer];

    [moviePlayer prepareToPlay];
    [moviePlayer play];
以下是我得到的输出:


选项A:改为使用
MPMovieViewController
,并使用
PresentMoviePlayServices控件以模式显示它

选项B:确保您的switchView(用于添加电影播放器的视图)实际占据整个屏幕

选项C:使用负垂直偏移重新调整电影播放器视图的框架,直到其适合-例如:
moviePlayer.view.frame=CGRectMake(0.0f,-20.0f,320.0f,480.0f)


注意:当使用控件样式时,无论应用程序的其他部分如何处理状态栏,MPMoviePlayerController始终显示一个状态栏。

通过以下方法更改播放机的controlstyle属性:-(无效)applyUserSettingsToMoviePlayer


player.controlStyle=MPMovieControlStyleFullScreen导致上述问题,请将其更改为MPMovieControlStyleEmbedded,然后查看是否有效。

尝试此选项,而不是您正在设置的帧moviePlayer.view.frame=self.switchView.bounds;看起来下杆现在位置正确,但上杆仍然较低。我选择了C选项,它解决了我的问题。此外,在viewDidAppear中,我将moviePlayer.view.frame=CGRectMake(0.0f,-20.0f,320.0f,480.0f);因为否则电影屏幕会跳!但对于addSubView部分,我将其保留在0.0f上。