2012-08-17 34 views
3

我想在後臺播放視頻,並在前面輸入文本標籤,運行以下代碼,播放視頻,但文本標籤不顯示!在的最佳選擇之一Cocos2d:如何在CCLayer的背景中播放視頻

-(id) init { 
    if(!(self=[super init])) { 
     return nil; 
    } 

    CGSize size = [[CCDirector sharedDirector] winSize]; 

    // MP4 
    NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"test" ofType:@"m4v"]]; 
    moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:url]; 
    [moviePlayer respondsToSelector:@selector(setFullscreen:animated:)]; 
    moviePlayer.controlStyle = MPMovieControlStyleNone; 
    moviePlayer.shouldAutoplay = YES; 
    moviePlayer.repeatMode = MPMovieRepeatModeOne; 
    moviePlayer.view.frame = CGRectMake(0, 0, size.height, size.width); 
    [viewController.view addSubview:moviePlayer.view]; 
    [viewController.view sendSubviewToBack:moviePlayer.view]; 

    // create and initialize a Label 
    CCLabelTTF *label = [CCLabelTTF labelWithString:@"Hello World" fontName:@"Marker Felt" fontSize:64]; 
    label.position = ccp(size.width /2 , size.height/2); 
    [self addChild: label]; 

    return self; 
} 

回答

1

CCVideo玩家在cocos2d項目播放視頻

[CCVideoPlayer setDelegate: self]; 
[CCVideoPlayer playMovieWithFile: @"bait.m4v"]; 
+0

使用CCVideoPlayer如何發送CCVid eoPlayer視圖到背景? – WangYang 2012-08-17 14:02:55

3

我找到了答案:

首先在AppDelegate.m與kEAGLColorFormatRGBA8取代kEAGLColorFormatRGB565,其次,以下代碼中,最後4行很重要:

NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"video" ofType:@"mp4"]]; 
_moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:url]; 
[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(moviePlayBackDidFinish) 
              name:MPMoviePlayerPlaybackDidFinishNotification 
              object:_moviePlayer]; 

[_moviePlayer respondsToSelector:@selector(setFullscreen:animated:)]; 
_moviePlayer.controlStyle = MPMovieControlStyleNone; 
_moviePlayer.shouldAutoplay = YES; 
_moviePlayer.repeatMode = MPMovieRepeatModeOne; 
_moviePlayer.view.frame = CGRectMake(0, 0, 300, 300); 

UIView* glView = [CCDirector sharedDirector].openGLView; // attention 
[glView.superview insertSubview:_moviePlayer.view atIndex:0]; // attention 
glView.opaque = NO; // attention 
glClearColor(0.0f, 0.0f, 0.0f, 0.0f); // attention 
相關問題