3

我的开放类控制器中有方法实例化一个moviePlayer,它设置为'autoPlay = NO';

我已将movieplayer.view 添加为控制器视图的子视图,对其进行配置并在顶部创建一个全屏按钮以启动视频。自 iOS4.3 以来,这一直运行良好。该按钮是透明的,视频的第一帧显示通过(这是自定义自动自动启动按钮的图片)。

从iOS6开始,我只得到一个黑屏。单击图像按钮确实会按原样启动视频;调用 [moviePlayer 播放]

有没有我没有考虑到的变化?我提供了我认为必要的两段代码。

#define INTRO_MOVIE @"Intro.mov"
-(void)viewDidLoad
{
    if(SHOULD_PLAY_INTRO_VIDEO)//Debug switch to ignore the intro video
    {
        // Prepare the movie and player
        [self configureIntroMoviePlayer];        
        [self.view addSubview:moviePlayer.view];      
        [self.view bringSubviewToFront:moviePlayer.view];

        // Add and Show the Start Button to start the App
        [self configureStartButton];
        [self.view addSubview:startButton];
    }
}

-(void)configureIntroMoviePlayer
{
    LOGINFO
    // Prepare the Intro Video    
    NSString *pathToIntroVideo  = [ mainFilePath_ stringByAppendingPathComponent: INTRO_MOVIE];
    NSURL *URLToIntroVideo      = [NSURL fileURLWithPath:pathToIntroVideo];

    moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:URLToIntroVideo];
    [moviePlayer setShouldAutoplay:NO];
    moviePlayer.view.frame = CGRectMake(0, -20, 1024, 768);
    [moviePlayer setControlStyle:MPMovieControlStyleNone];

    //fixing video brightness Difference with iPad2
    if(isIpad2)
    {
        moviePlayer.backgroundView.backgroundColor = [UIColor blackColor];
        moviePlayer.view.alpha = .99;
    }

// Create the sKip button for cancelling the Intro Video
    skipIntro = [UIButton buttonWithType:UIButtonTypeCustom];
    [skipIntro showsTouchWhenHighlighted];
    skipIntro.frame = CGRectMake(900, 20, 111, 57);
    [skipIntro addTarget:self action:@selector(skipIntroWasPressed) forControlEvents:UIControlEventTouchUpInside];

}
4

2 回答 2

2

我不知道为什么我因为缺乏研究或清晰度而在这个问题上得到了 -1 分?也许我不知道这个论坛的正确用法。我道歉。

我确实发现添加 [moviePlayer prepareToPlay] 解决了这个问题。就像我说的,奇怪的是第一帧总是出现在 iOS 6 之前。

于 2012-10-24T22:41:21.710 回答
0

你有没有尝试过:

 [moviePlayer.view addSubView:startButton];
于 2012-10-22T18:45:22.330 回答