一、CameraGLSurfaceView.java 此类继承GLSurfaceView,并实现了两个接口 1packageorg.yanzi.camera.preview;23importjavax.microedition.khronos.egl.EGLConfig;4importjavax.microedition.khronos.opengles.GL10;56importorg.yanzi.camera.CameraInterface;78importandroid.content.Context;9importandroid.graphics.SurfaceTexture;10...
2. 当Camera使用SurfaceView预览时通过setPreviewDisplay(holder)方法来设置预览视图,而使用TextureView预览时使用setPreviewTexture(mCameraTextureView.getSurfaceTexture())方法来设置。 其他步骤同上。 代码部分 public class CameraTextureViewShowActivity extends AppCompatActivity implements TextureView.SurfaceTextureListener ...
<uses-permission android:name="android.permission.CAMERA" /> 创建GLSurfaceView:在布局文件中添加一个GLSurfaceView元素,用于显示OpenGL图形。示例: 代码语言:txt 复制 <android.opengl.GLSurfaceView android:id="@+id/glsurfaceview" android:layout_width="match_parent" android:layout_height="match_parent" /> 实...
处理和渲染视频需要较高的性能,而移动端的cpu性能有限,所以在处理和渲染视频的时候尽量要用gpu的能力,在移动设备里主要是opengles api的使用,今天主要想介绍一下通过共享texture(surfacetexture)来实现Android camera的高效预览。 在本文中主要介绍Android camera预览,用opengl sh... ...
一、Camera2的大致了解: ①、 CameraManager:作为整个框架的入口,用于初始化其他类; ②、CameraCharacteristics:通过CameraManager获得,可提供Camera相关参数; ③、CameraDevice:通过CameraManager获得,类似之前的Camera类,可以进行预览等操作,例如:设置显示预览的Surface。
2. 如何通过SurfaceView显示Camera预览。 基本步骤 在xml文件中设置SurfaceView 。 实现SurfaceHolder.Callback的回调。 打开摄像头Camera.open(0); 设置摄像头相关参数; 将摄像头数据设置到SurfaceView中,并开启预览。 代码部分 <android.support.constraint.ConstraintLayoutxmlns:android="http://schemas.androi...
目前市面上的手机一般有前后两个摄像头,我们首先要确认打开哪个摄像头、找到相应的摄像头id,然后才能调用Camera.open(int cameraId)打开指定的摄像头。选取摄像头的代码如下所示: CameraInfo中包含两个const值:CAMERA_FACING_FRONT和CAMERA_FACING_BACK,分别标识前置和后置摄像头摄像头。本文中我们选择使用前置摄像头。
实现的基本功能 使用GLSurfaceView绘制camera的preview内容。 支持前后摄像头切换。 支持切换preview size。 通过手势可以缩放preview画面,移动previw画面。...
SurfaceTexture 这个东西不是用来显示给用户看的, 它是一个Texture, 意识是纹理, 可以想象成一个View的中间件。 举个例子: 1 :Camera把视频采集的内容交给SurfaceView, 就变成了照相机。 2:Camera把视频采集的内容交给SurfaceTexture,SurfaceTexture在对内容做个美颜, 然后SurfaceTexture再把内容交给SurfaceView, 就变成...
首先讲一下,本文不使用Camera的PreviewCallback预览回调接口,因为onPreviewFrame()获取的数据格式只能是NV21或NV12,除非修改HAL层代码,一般情况下NV21或NV12需要转成RGB格式然后进行处理,这样太耗时了,所以本文使用SurfaceTexture来获取预览图像。 <>1. 添加GLSurfaceView作为布局界面 ...