我的open类控制器中有方法实例化一个moviePlayer,设置为'autoPlay = NO';
我已将movieplayer.view添加为控制器视图的子视图,对其进行配置并在顶部创建一个全屏按钮以启动视频。从iOS4.3开始,这一直很好。按钮是透明的,视频的第一帧显示(这是自定义Automable自动启动按钮的图片)。
从iOS6开始,我只得到一个黑屏。 单击图像按钮可以按原样启动视频;调用[moviePlayer play]
有什么改变我还没有考虑过吗? 我提供了我认为必要的两部分代码。
#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];
}
答案 0 :(得分:2)
由于缺乏研究或清晰度,我不确定为什么我对此问题的评分为-1? 也许我不知道这个论坛的正确用法。 我道歉。
我确实发现添加[moviePlayer prepareToPlay]解决了这个问题。就像我说的那样,奇怪的是第一帧总是出现在iOS 6之前。
答案 1 :(得分:0)
你试过了吗?
[moviePlayer.view addSubView:startButton];