写下最近使用videoPlayer的体验和问题:
1.首先遇到的第一个问题就是视频层级的问题,视频挡住了ui按钮,分享下在论坛找到的解决方法:
web:
(1)在编辑器添加插件脚本 cc.macro.ENABLE_TRANSPARENT_CANVAS = true;
(2)脚本上面使用:
var video0 = document.getElementsByClassName(‘cocosVideo’)[0];
video0.style.zIndex = 5;
video0.setAttribute(“x5-video-player-type”, “h5”);
video0.setAttribute(“webkit-playsinline”, true);
video0.setAttribute(“x-webkit-airplay”, true);
video0.setAttribute(“x5-video-orientation”, “h5”);
video0.setAttribute(“x5-video-player-fullscreen”, true);
video0.setAttribute(“preload”,“auto”);
var gCanvas = document.getElementsByClassName('gameCanvas')[0];
gCanvas.style.position = 'relative';
gCanvas.style.zIndex = 10;
Android:
(1)同上
(2)//AppActivity.java
public Cocos2dxGLSurfaceView onCreateView() {
Cocos2dxGLSurfaceView glSurfaceView = new Cocos2dxGLSurfaceView(this);
// TestCpp should create stencil buffer
glSurfaceView.setZOrderMediaOverlay(true);
glSurfaceView.getHolder().setFormat(PixelFormat.TRANSLUCENT);
glSurfaceView.setEGLConfigChooser(8, 8, 8, 8, 16, 8);
SDKWrapper.getInstance().setGLSurfaceView(glSurfaceView, this);
return glSurfaceView;
}
(3)//Cocos2dxVideoView.java
public boolean onTouchEvent(MotionEvent event) {
return false;
}
(4)//Cocos2dxVideoHelper.java
//videoView.setZOrderOnTop(true);
2.解决了层级问题,构建发布安卓上播放不了视频,解决方法:
监听ready-to-play,在ready-to-play后再开始play()
3.切换视频黑屏的问题,当点击按钮播放下一个视频的时候会有黑屏闪一下,然后才播放下一个视频,这个体验很差.
想了两个方法,用图片挡一下在黑屏后再隐藏图片,这个在低端的手机上面还是会有黑屏闪过;
第二个方法就是将视频剪接成一个大的视频,调节视频开始时间切换内容,这样就没有了黑屏问题,但是这样又有了其他的问题…
4.调节开始时间currentTime,这个属性有点搞不懂,在编辑器上看这个属性的单位是秒,但是小数点后面是10进制的,因为视频需要精确到小数点后两位的秒数,如1.23秒这样子,
在pr上得到的视频时间信息小数点后是25进制或者60进制的,这样调节视频开始时间就出现了误差,简单的写了个进制转换的方法,
在web上测试可以正常调节到想要的开始时间,但是在安卓上又有误差,头都大了…
求大佬们指点下,currentTime这个问题应该怎么解决,或者有什么更好的方法解决切换视频黑屏这个问题?