Cocos2d-X 3.2添加视频背景

cocos2d-X 3.2的VideoPlayer是专门支持视频播放的类,可以满足基本视频播放的需求,但是如果想以视频为背景,或者是在视频上添加Node还是略显功能不足,今天研究了一下,在ios平台上解决了这个问题,效果如下图所示。
仔细看VideoPlayer的实现,发现它其实也是Node,但是发现在addChild过程中不论怎样改变它的层级,VideoPlayer都会显示在最上层,原因是VideoPlayer是在新的UIView上显示的,我们可以打开UIVideoPlayerIOS.mm这个文件,大概在160多行,就可以发现这点,也就是说VideoPlayer的视图默认总是在cocos2dx绘图层上面,因此我们就要自己改变这两个视图的层级顺序来解决这个问题。我的方式大概如下:
1.首先在AppController.mm文件中把_viewController设置成透明:

_viewController.view.backgroundColor = ;


```

2.创建一个新的UIViewController并添加两个子视图,一个视图用来显示下方的视频,第二个就是cocos2dx渲染所在视图,注意先后顺序。然后将其设置成跟视图。可以在这里设置个全局变量来保存用来显示video的视图,便于在后面调用。代码如下:
    UIViewController* uiVC =  init] autorelease];
    videoView =  init] autorelease];
    ;
    ;

    // Set RootViewController to window
    if ( .systemVersion floatValue] < 6.0)
    {
        // warning: addSubView doesn't work on iOS6
        ;
    }
    else
    {
        // use this method on ios6
        ;
    }


```

3.打开文件UIVideoPlayerIOS.mm,在160多行左右把之前的;改为上面提到的播放video的视图 addSubview:self.moviePlayer.view];
4.在AppDelegate.cpp文件中添加glClearColor(0, 0, 0, 0);以透明的方式清空后台缓冲。

  这样就能实现如图的效果了,在一些特殊的场合也许用的上,另外提到一点,如果需要播放视频去掉系统自带的控件,仍然需要改一下UIVideoPlayerIOS.mm这个文件的代码,初始化时把默认的风格改一下,添加下句self.moviePlayer.controlStyle =  MPMovieControlStyleNone;

:7:消灭零回复。

按照你的方法来做,cocos2dx的view仍然被播放视频的view覆盖,能否贴AppController.mm和AppDelegate.cpp的代码出来给大家参考一下? 谢谢!

好的,回来我整理一下,不过有一点,我这个是在V3.2版下做的,后来到V3.3发现很多代码都改了,我回来用最新的3.4版做一个,再发

坐等3.4版。。。

蹲等3.4版。。。

跪等……:2::2::2::2::2::2:

吼~3.4版的搞掂了~跟版主的思路一样的~就是稍微详细一点点~

http://www.cocoachina.com/bbs/read.php?tid=290869&page=1&toread=1#tpc

videoView设个tag~?好调用一点~

videoView设个tag~?

为啥我改完后视频不显示,但是有声音,整个画面是黑的图层。。

3.4版的ios怎么都搞不定啊 求指教求指教

我的也是黑屏呢 你知道咋解决不