项目需要实现视频播放功能。视频数据为YUV420P
,最初是将数据转换为RGB
,然后再转换成Bitmap
,一张一张贴在Image中。(下意识认为这一种很临时的做法)虽然视频画面是播放出来,但是播放效果有明显不理想(帧率过低)。
查资料一种说法是将YUV数据直接展示到SurfaceView上。一句很笼统的说法,完全没有头绪。surfaceview预览camre系列(预览也有三种实现方法),有提供类似实现(camera预览数据就是YUV)。只是有个模糊的印象GLSurfaceView texture(纹理) openGL。下面是细节:
将YUV数据通过openGL
转换成纹理贴图到GLSurfaceView上。重点在openGL是怎么转换与渲染?