首先列出参考资料
主题 : Cocos2d-X 3.2添加视频背景 http://www.cocoachina.com/bbs/read.PHP?tid-235430-page-1.html
主题 : cocos2d-x 3.4版本,videoPlayer和webView上添加sprite等cocos控件 http://www.cocoachina.com/bbs/read.PHP?tid=290869&page=1&toread=1#tpc
上面这两个是ios版的实现方式。纠结了半天的语法,才知道,这是修改了java层的(OC里面那个叫什么?)view的堆叠方式来实现的。java层也是一样实现。
然后是老外牛鼻轰轰的代码
http://discuss.cocos2d-x.org/t/layering-of-the-cocos2dxglsurfaceview-and-cocos2dxvideoview-after-external-event-minimize-call-etc/18669
但是这个是不能直接实现效果的。如果套用这个,会直接视频出不来。何以故?初步判断是因为最顶层,即cocos渲染层不透明,所以遮住了下面的视频层。
所以要在c++端同步修正代码。然后就是问题分解,how?幸运的又搜到一篇
http://www.cocoachina.com/bbs/read.PHP?tid-156363-page-2.html 答案在第二页skylittle的回答。但我只取它的核心思路,因为我的工程已经是预编译版本。所
以不好直接改代码。
综上,于是就有了下面的实现步骤。留此造福后人。
例常先吐槽。其实如果问题没有解决,我还有后招,就是直接用这里的办法http://www.2cto.com/kf/201403/287834.html 外加http://blog.csdn.net/langresser_king/article/details/14516879这里的办法,这才是终极视频解决方案。我能吐槽下cocos2d-x吗????之前音频也是搞了一套
非通用的代码,现在发现视频也是调用本地的。。。搞个通用的行不行?
好,下面上步骤
1。如下图,改为false。研究代码可发现,video层是后加的,然后又设置置顶。因此所有的cocos2d-x 不管你怎么改zorder globalzorder。无效。别折腾了。因为这
是在java里独立分层的东西。你改cocos渲染层有啥用?
2。cocos2dxActivity.java的init函数中。下面的函数中。如下图。
3。c++代码层。如图。