Cocos2d iphone Cocos2d:如何在CCLayer的背景中播放视频
我希望视频播放在后台,文本标签在前面,运行下面的代码,视频正在播放,但文本标签不显示Cocos2d iphone Cocos2d:如何在CCLayer的背景中播放视频,cocos2d-iphone,mpmovieplayercontroller,ccvideoplayer,Cocos2d Iphone,Mpmovieplayercontroller,Ccvideoplayer,我希望视频播放在后台,文本标签在前面,运行下面的代码,视频正在播放,但文本标签不显示 -(id) init { if(!(self=[super init])) { return nil; } CGSize size = [[CCDirector sharedDirector] winSize]; // MP4 NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] path
-(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;
}
CCVideo播放器是在cocos2D项目中播放视频的最佳选项之一
[CCVideoPlayer setDelegate: self];
[CCVideoPlayer playMovieWithFile: @"bait.m4v"];
我找到了答案:
首先,在AppDelegate.m中,将kEAGLColorFormatRGB565替换为kEAGLColorFormatRGBA8,其次,作为以下代码,最后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
使用CCVideoPlayer如何将CCVideoPlayer视图发送到后台?