现在的情况是,在 TextureView 中可以正常播放视频,但是业务需求,需要将 TextureView 改为 GLSurfaceView 。
百度谷歌一大圈,需要设置 render 之类到,surfaceTexture 之类的,有点儿懵逼,OpenGL 完全不懂,所以完全无从下手。
有没有老哥懂到,可以讲讲思路,事情搞定了有红包。
感谢感谢
1
across 2023-12-10 16:14:15 +08:00 1
以前用 unity 做 android app 嵌入时看过一点,为了让 Unity 窗口做背景,原生控件叠加上层。
有四五年了,只有大概的印象了。 一般 View 内部封装好了渲染逻辑,开发只关心视图数据+操作。说到底,View 内部有一张“画面贴图”,GLSurfaceView 就是把这张贴图暴露了出来,开发者可以自己用 OpenGL 绘制画面内容。 比如我用 OpenGL 画了一些 3D 场景,OpenGL 内部输出是一张贴图( Texture ),这张贴图靠 SurfaceTexture 类型与 Android 层实现对接。SurfaceTexture 只是单纯的实现“画面绘制”,外部被 View 封装管理。 按你的需求,视频播放需要改为 GLSurfaceView ,要实现画面滤镜,字幕嵌入等操作? OpenGL 讲起来就麻烦了,这里概念太多了,和原生开发独立的一套知识体系。 流程差不都就这样: 1. 创建一张 OpenGL 的 Texture , 和 SurfaceTexture 绑定 2. SurfaceTexture 和 GLSurfaceView 关联 3. SurfaceView 和 其他原生 view 一样操作,SurfaceTexture 内部反正是交给 OpenGL 那边的环境操作了。 |
2
Helsing 2023-12-10 17:54:06 +08:00 via iPhone
问 GPT 吧,最快了
|
3
lixyz OP |
4
guchengyehai1 2023-12-10 21:37:37 +08:00 via iPhone
@lixyz 给个联系方式,如果还没搞定,明天我给个方案你
|
5
lixyz OP 不好意思,刚刚看到,绿泡泡:ligb1022 @guchengyehai1
|