首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android播放端绘制-SurfaceView还是GLSurfaceView

GLSurfaceView GLSurfaceView继承自SurfaceView,对SurfaceView又做了一次封装,方便我们在安卓中使用OpenGL。...GLSurfaceView提供了以下特性: 提供并且管理一个独立的Surface; 提供并且管理一个EGL display,它能让opengl把内容渲染到上述的Surface上; 支持用户自定义渲染器(...的效率是SurfaceView的30倍以上,SurfaceView使用画布进行绘制,GLSurfaceView利用GPU加速提高了绘制效率; View的绘制onDraw(Canvas canvas)使用...Skia渲染引擎渲染,而GLSurfaceView的渲染器Renderer的onDrawFrame(GL10 gl)使用opengl绘制引擎进行渲染。...一般兼容性比较好的播放器,会同时支持SurfaceView和GLSurfaceView两种模式供用户根据实际场景选择,以大牛直播SDK(Github)的Android平台RTSP和RTMP播放端为例:

1.6K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    播放视频时如何在视频帧上添加水印

    其实除了TextureView和SurfaceView渲染视频之外,GLSurfaceView也是渲染视频的一种View,GLSurfaceView和OpenGL结合,可以实现给播放中的视频添加水印的目的...1.GLSurfaceView介绍 GLSurfaceView从Android 1.5(API level 3)开始加入,继承自SurfaceView,实现了SurfaceHolder.Callback2...GLSurfaceView提供了下列特性: 1.提供并且管理一个独立的Surface。 2.提供并且管理一个EGL display,它能让opengl把内容渲染到上述的Surface上。...6.GPU加速:GLSurfaceView的效率是SurfaceView的30倍以上,SurfaceView使用画布进行绘制,GLSurfaceView利用GPU加速提高了绘制效率 7.View的绘制onDraw...2.GLSurfaceView渲染视频 首先定义一个CustomGLSurfaceView 继承GLSurfaceView 定义一个CustomRenderer实现Renderer接口 public

    3K00

    Android开发笔记(一百五十三)OpenGL绘制三维图形的流程

    那么对于OpenGL的三维绘图来说,也同样需要具备这三种要素,分别是GLSurfaceViewGLSurfaceView.Renderer和GL10,其中GLSurfaceView继承自表面视图SurfaceView...具体到App编码上面,还得将GLSurfaceViewGLSurfaceView.Renderer和GL10这三个类有机结合起来,即通过函数调用关联它们三个小伙伴。...首先从布局文件获得GLSurfaceView的控件对象,然后调用该对象的setRenderer方法设置三维渲染器,这个三维渲染器实现了GLSurfaceView.Renderer定义的三个视图函数,分别是...如此一来,绘图三要素的GLSurfaceViewGLSurfaceView.Renderer和GL10就互相关联了起来。...-- 注意这里要使用控件的全路径android.opengl.GLSurfaceView --> <android.opengl.GLSurfaceView android:id

    1.9K20

    Android Camera1显示预览的四种方式

    SurfaceHolder给相机,通常在使用SurfaceView作为预览控件时使用; 通过Camera#setPreviewTexture方法设置SurfaceTexture给相机,通常在使用TextureView或GLSurfaceView...onSurfaceTextureAvailable回调中拿到准备好的SurfaceTexture设置给Camera即可 camera.setPreviewTexture(surfaceTexture); 方式三、使用GLSurfaceView...使用GLSurfaceVIew作为预览UI控件时,将相机预览数据转化为纹理数据,然后利用OpenGL绘制到屏幕,核心流程: @Override public void onSurfaceCreated...cameraRender = new CameraRender(context); st.setOnFrameAvailableListener(this); glSurfaceView.setRenderMode...(GLSurfaceView.RENDERMODE_WHEN_DIRTY); } @Override public void onDrawFrame(GL10 gl) { st.updateTexImage

    3.5K20

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券