安卓和ios透明层问题的解决思路

在做项目中,我遇到了新的需求,在视频播放页面,暂停视频做到玩游戏,主要应用场景是安卓和ios设备。本身我想使用自带的videoView,但是后来由于性能问题和其他原因,我摒弃了,主要还是因为ios和安卓开发用到的三方播放控件确实也很好用。于是我的新思路是,在游戏页面下面添加一个原生的view,让游戏的层级在原生页面上面。这个思路是好的,我也用了一些办法,让我的游戏层下有一个视频播放层,但此时,我发现,虽然游戏的层级,我都设置了隐藏属性,但是这个页面还是可见的。于是,我研究了一些资料。下面说下我的解决办法:
1.将我的游戏场景在onload的时候加入代码 cc.Camera.main.backgroundColor = new cc.Color(0, 0, 0, 0);
2.android 打包后,修改proj.android-studio/app/src/org/cocos2dx/javascript/AppActivity.java中的onCreateView方法
把glSurfaceView.setEGLConfigChooser(5, 6, 5, 0, 16, 8);改为glSurfaceView.setEGLConfigChooser(8,8,8,8,16,8);
ios:找到工程的CCApplication-ios.mm修改onCreateView方法,
将其中的RGB565修改成RGBA8
这里有这个思路的原因是,我之前看到web有做过类似的需求,所有有了第一步的代码,这里很明显第一步是想设置透明度,但是研究完代码后,我发现,启动的创建视图,都是565的,这种类型是不存在透明度的,所以我把它改成了8888的,发现有效。目前改完之后,除了一些渐变的特效和文字节点的渲染有点问题之外,其他都还算正常,感兴趣的可以尝试一下。
由于一直在忙项目,demo就没时间做了,大家自己试一下,有问题私我。

1赞

效果大致就是背景在播放视频,返回键,调整清晰度,暂停等都是游戏层来控制

webview怎么弄呢

可以使用安卓或者ios的webview啊

这个一些办法是啥?实在android studio里添加videoview吗?

这样 事件不会被cc层得view吞噬吗

ios上能说得具体一点吗

我按照这个方法。切换场景后。canvas没有完全透明是什么原因呢。 只透明了一小部分