TextureView 的内容如何在 GLSurfaceView 中显示

154 天前
 lixyz

现在的情况是,在 TextureView 中可以正常播放视频,但是业务需求,需要将 TextureView 改为 GLSurfaceView 。

百度谷歌一大圈,需要设置 render 之类到,surfaceTexture 之类的,有点儿懵逼,OpenGL 完全不懂,所以完全无从下手。

有没有老哥懂到,可以讲讲思路,事情搞定了有红包。

感谢感谢

3409 次点击
所在节点    Android
5 条回复
across
154 天前
以前用 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 那边的环境操作了。
Helsing
154 天前
问 GPT 吧,最快了
lixyz
154 天前
@across 感谢您写了这么多,需求确实是要实现画面滤镜,因为涉及到一堆 Surface SurfaceTexture Render 之类到概念,之前基本没有接触过,所以一脸懵逼无从下手,我再仔细找找吧,感谢感谢

@Helsing 已经 GPT 过了,还是一脸懵逼 T_T
guchengyehai1
154 天前
@lixyz 给个联系方式,如果还没搞定,明天我给个方案你
lixyz
154 天前
不好意思,刚刚看到,绿泡泡:ligb1022 @guchengyehai1

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/999143

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX