2011-04-16 101 views
2

我的代码播放视频文件时出现问题。每当我以全屏模式播放文件时,播放不会占用我的全部屏幕。下面是相关代码:MPMoviePlayerController全屏模式问题

 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]; 

这里是输出我得到:

enter image description here

+0

尝试这一个,而不是你正在设置的框架moviePlayer.view.frame = self.switchView.bounds; – Ravin 2011-04-17 09:56:04

+0

现在看来下方的酒吧处于正确的位置,但顶部酒吧仍然较低。 http://img849.imageshack.us/i/defaultj.png/ – Diurpaneus 2011-04-17 11:23:48

回答

7

选项A:使用MPMovieViewController,而不是使用presentMoviePlayerViewControllerAnimated:显示它模态。

选项B:确保您的switchView(用于添加moviePlayer的视图)实际占用整个屏幕。

选项C:重新调整moviePlayer的负垂直偏移视图的框架,直到它符合 - 如:moviePlayer.view.frame = CGRectMake(0.0f, -20.0f, 320.0f, 480.0f);

注:的MPMoviePlayerController 总是显示器使用控制风格MPMovieControlStyleFullscreen时,无论怎样一个状态栏其余的应用程序处理状态栏。

+0

我做了选项C,它解决了我的问题。另外在viewDidAppear中,我把moviePlayer.view.frame = CGRectMake(0.0f,-20.0f,320.0f,480.0f);因为否则电影屏幕跳跃!但对于addSubView部分,我将它放在0.0f上。 – rockstarberlin 2013-11-28 15:47:45

1

更改您的播放器从下面的方法ControlStyle属性: - (无效)applyUserSettingsToMoviePlayer

player.controlStyle = MPMovieControlStyleFullScreen导致上述问题,将其更改为MPMovieControlStyleEmbedded,看看是否可行。