有没有办法在影片上加进度条?(Android输出)

版本:2.4.3

老板希望登入画面的影片有个进度条在上面

我有参考过这篇:
cocos creater 视频控件videoplayer动态切换到canvas下面
但是修改videoView.getHolder().setFormat(PixelFormat.RGBA_8888),
这地方android输出会让我不给build,总之最后只把影片隐藏起来,并未达到影片上加个UI的效果

我目前想到最烂的方式就是把影片作成序列侦…这样我就可以在Android上用了嘿嘿~
大老有没有做过类似的,或是其他方式可以满足需求

一个方案:

原生底层使用 FFmpeg 解码视频,把数据流传输到 Cocos 层,用 Sprite 的方式播放视频,在 Sprite 上面加 Cocos UI~

大佬能讲的详细点吗? 我愿意尝试,但请给我多点方向

有没有需要知道的原理链结,方便我更深入理解的

sprite上可以播放影片?

这个我也不是很懂哈哈,只能提供这个大方向~

你是说解码成图片 然后像序列侦一样的播放吗?

是的哈哈哈~

总共16秒 就算30侦也要480张…还是换个思路吧…

我实在3.x上实现的 你试试看2.x行不行 修改CocosActivity.java initView
mSurfaceView = new CocosSurfaceView(this);
mSurfaceView.getHolder().setFormat(PixelFormat.TRANSLUCENT);
mSurfaceView.getHolder().addCallback(this);
mFrameLayout.addView(mSurfaceView);
mSurfaceView.setZOrderMediaOverlay(true);
image

不如播放器用webview内嵌h5 video标签自带

试下2.4.6 说不定有惊喜

之前有写过一个Sprite直接播放视频的,可以参考一下: VideoSprite
大概原理是VideoSprite继承自Sprite, 创建时传入视频路径,VideoTextureCache启动一个线程不断用ffmpeg接口解码,解码出来就是图片二进制数据,转换为Texture后暂存到VideoTextureCache中,VideoSprite根据视频帧率定时从VideoTextureCache中取Texture显示

1赞

我这边没改的话可以输出 但还是跟2.X版一样改了就输出错误 感觉有侦测不到PixelFormat的问题

2021-11-24 11:48-log: [runCmd D:\git\AndroidVideoWithLoadingBar_\build\android\proj\gradlew.bat - error] C:\CocosDashboard_1.0.20\resources.editors\Creator\3.2.1\resources\resources\3d\engine-native\cocos\platform\android\java\src\com\cocos\lib\CocosActivity.java:148: error: cannot find symbol

    mSurfaceView.getHolder().setFormat(PixelFormat.TRANSLUCENT);

                                       ^

symbol: variable PixelFormat

location: class CocosActivity

Note: C:\CocosDashboard_1.0.20\resources.editors\Creator\3.2.1\resources\resources\3d\engine-native\cocos\platform\android\java\src\com\cocos\lib\CocosWebView.java uses or overrides a deprecated API.

Note: Recompile with -Xlint:deprecation for details.

1 error

android2021-11-23 17-47 - 1.zip (98.9 KB)

没错,就这个方案!!!

小弟接近零零后 cocos2d真没用过…