2013-05-05 204 views
0

MPMoviePlayerViewController视频,我想我的应用程序里面播放的具有透明背景的视频。它有一个人在透明背景上移动。唯一的问题是,MPMovieePlayer似乎有一个黑色的背景。我怎样才能让它透明?与透明背景

这是我尝试的代码:

-(void)playMovie 
{ 
     NSString *resourcePath = [[NSBundle mainBundle] pathForResource:@"syncink movie" ofType:@"m4v"]; 
     NSLog(@"%@",resourcePath); 
     NSURL *url = [NSURL fileURLWithPath:resourcePath]; 
     NSLog(@"%@",url); 

     MPMoviePlayerViewController *moviePlayer; 

     moviePlayer = [[MPMoviePlayerViewController alloc] initWithContentURL:url]; 

     moviePlayer.moviePlayer.shouldAutoplay=YES; 
     moviePlayer.moviePlayer.controlStyle = MPMovieControlStyleNone; 
     [moviePlayer.moviePlayer setFullscreen:NO animated:YES]; 
     [self.view addSubview:moviePlayer.view]; 

     moviePlayer.view.frame = CGRectMake(200, 600, 400, 300); 

     [moviePlayer.moviePlayer play]; 

     moviePlayer.view.backgroundColor = [UIColor clearColor]; 

     for(UIView *aSubView in moviePlayer.view.subviews) 
     { 
      aSubView.backgroundColor = [UIColor clearColor]; 
     } 
} 

aSubView.backgroundColor = [的UIColor clearColor];

似乎是删除玩家的框架,而不是实际的背景。谢谢你的帮助。

回答

0

您应该使用MPMoviePlayerController这里,而不是MPMoviePlayerViewController。后者是呈现的视图控制器(通常以模态方式)。

这样,当您将moviePlayer.view作为子视图添加到层​​次结构中时,您将添加电影播放器​​视图本身,而不是包含电影播放器​​的视图(这是您看到的平面黑色屏幕)。

另外,通过使用MPMoviePlayerController,您可以简化您的代码中的moviePlayer.moviePlayer到只有moviePlayer