demo: https://github.com/qianfeng0/MediaRender
SurfaceView与GLSurfaceView
- MediaPlayer+SurfaceView的组合能最简单实现视频播放,通过setDisplay(SurfaceHolder sh)把Surface设置给player,player解码后直接渲染到surface上,但无法实现后处理效果。
- MediaPlayer+GLSurfaceView组合能通过opengl实现对player图像帧的后处理。
MediaPlayer渲染与GL关联
通过下面的代码建立Surface - SurfaceTexture - gltexture之间的关联
Surface设置给Player,当有图像渲染时,可以拿到图像的texture
final int[] args = new int[1];
GLES30.glGenTextures(1, args, 0); //生成纹理textureId
textureId = args[0];
preViewSurface = new SurfaceTexture(textureId);

该博客探讨了如何在Android中结合MediaPlayer和GLSurfaceView实现视频播放,并利用OpenGL进行图像帧的后处理。通过创建Surface - SurfaceTexture - gltexture的关联,将MediaPlayer的输出与OpenGL渲染器连接,从而在onDrawFrame时应用各种视觉效果。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



