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

Android Camera开发系列:调整Camera预览方向

有时候我们想根据自己的需要调整Camera预览方向,那么是调用哪个API可以达到我们的目的呢? 我们看下下图拍的几张小可爱的照片,分别是正常方向、旋转180度、90度拍的照片。 ?...一、Camera API Camera1上,我们可以通过setDisplayOrientation(int degress)来设置camera预览方向。...API 在Camera2的API上,找了一通,发现并没有像Camera1上,可以通过类似的接口来设置预览方向,只是发现可以通过CaptureRequest.JPEG_ORIENTATION 来设置拍照的图像方向...//调整预览画面显示方向 configureTextureViewTransform(mTextureView.getWidth(),mTextureView.getHeight());...matrix.postRotate(180, centerX, centerY); } mTextureView.setTransform(matrix); } 写在后面 通过上面接口调整的只是预览显示的方向

2.5K20

Android Camera开发系列:调整Camera预览方向

有时候我们想根据自己的需要调整Camera预览方向,那么是调用哪个API可以达到我们的目的呢? 我们看下下图拍的几张小可爱的照片,分别是正常方向、旋转180度、90度拍的照片。 ​...一、Camera API Camera1上,我们可以通过**setDisplayOrientation(int degress);**来设置camera预览方向。...camera) { * android.hardware.Camera.CameraInfo info = * new android.hardware.Camera.CameraInfo...API Camera2的API上,找了一通,发现并没有像Camera1上,可以通过类似的接口来设置预览方向,不过可以通过TextureView.setTransform(matrix);来通过调整textureView...//调整预览画面显示方向 configureTextureViewTransform(mTextureView.getWidth(),mTextureView.getHeight());

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

Camera360录像预览滞后

前言 Camera360应用录像预览在我们的设备上存在滞后的问题。...具体现象在你快速摄像头角度的时候,预览画面不能及时更新到当前摄像头拍摄的角度的画面, 或者你拍你自己的手,快速握拳展开,预览画面需要延迟一些时间才能显示展开的手 一、程序员的直觉 线索 一:原生Camera...二、Camera APP架构 虽然我对Camera不是很熟悉,但是利用我掌握的知识,推测出Camera预览应用有两种架构。...总结假设 camera app处理一帧的时间是t毫秒 camera hal提供了i个request camera hal的出帧频率是每秒n帧 如果1000/t<n,最后app会达到的一个预览延迟的时间...T约等于(i-1)t+t,也就是it,为什么要加t,因为一帧图像显示到屏幕上也需要t的时间 解决延迟的办法有三个方向 减小t,治本 减少i ,治标不治本,仅仅是减少延迟的时间 减小n,牺牲了录像的出帧的帧率

83220

【Android RTMP】Android Camera 视频数据采集预览 ( 图像传感器方向设置 | Camera 使用流程 | 动态权限申请 )

文章目录 一、 Camera 传感器方向简介 二、 Camera 图像传感器横向显示数据 三、 Camera 图像传感器纵向显示数据 四、 设置 Camera 预览数据方向 五、 Camera 使用流程...六、 Camera 动态权限申请 一、 Camera 传感器方向简介 ---- 1 ....90 度 ; 注意 : 这是向上纵向显示的数据 , 如果向下纵向 , 数据整个都倒过来了 ; 四、 设置 Camera 预览数据方向 ---- 1 ....纠正图像预览方向 : Google 官方提供了设置 Camera 预览方向的方式 , 以下代码定义在 Camera#setDisplayOrientation 文档注释中 , 为 Camera 设置了以下参数后...NV21 数据方向 : NV21 格式的图像数据的的实际方向还是错误的方向 , 需要用户自己使用时纠正 ; /** * 设置 Camera 预览方向 * 如果不设置, 视频是颠倒的

1.8K30

Camera预览帧率是如何设置的

在不同的应用场景中,可能会有调整预览帧率的时候,比如客户需要录制的视频固定在24帧,或者需要优化Camera功耗(抖音功耗优化实践) (来自字节跳动技术团队的抖音功耗优化实践) 本篇文章分别从Camera1...和Camera2两套API来说明如何调整相机预览帧率 Camera1 getSupportedPreviewFpsRange: 获取设备支持的fps range 总结下来有两个关键点: 每个Range...max为26623,实际帧率为26.623 动态帧率的值具体是多少受环境光线的影响,也就是和AE的关系比较大,可以参考ISP之自动曝光这篇文章 在我们固定fps的时候(比如【30,30】),可以会存在预览亮度变暗的情况...CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES: 通过该Tag获取支持的fps range CaptureRequest.CONTROL_AE_TARGET_FPS_RANGE: 通过该Tag设置预览...fps range 示例如下: 可以看到通过Camera2 API获取的fps range是没有乘以1000的 关于高帧率的设置,比如【240,240】,可以参考Android手机如何实现慢动作录制

2.8K30

Android实现Camera2预览和拍照效果

简介 网上对于 Camera2 的介绍有很多,在 Github 上也有很多关于 Camera2 的封装库,但是对于那些库,封装性太强,有时候我们仅仅是需要个简简单单的拍照功能而已,因此,自定义一个 Camera...显示相机预览和拍摄照片。 Camera2 API 为连接到 Android 设备的各个相机设备提供了一个界面。 它替代了已弃用的 Camera 类。...当相机打开时,准备开始相机预览。 使用 TextureView 显示相机预览。 创建一个 CameraCaptureSession 并设置一个重复的 CaptureRequest。...private static final int MAX_PREVIEW_WIDTH = 1920;//Camera2 API 保证的最大预览宽高 private static final int MAX_PREVIEW_HEIGHT...* * @param rotation 屏幕方向 * @return 照片方向(0,90,270,360) */ private int getOrientation(int rotation) {

1.8K30

Android Camera开发序列:Camera2 API 的简单描述和调用(预览、拍照、录像

--- 当前连接的摄像头对象; CaptureRequest -------------- camera数据的请求,比如预览、拍照、录像等 ; CaptureSession --...", e); } } 复制代码 2.3 在camera打开的回调中,可以获取到当前的camera对应的CameraDevice,在onOpened()中执行打开预览的操作。...主要做了下面几件事情: 1、预览图像显示在哪里,这就需要绑定surface,这里可以进行多个surface的绑定,如果是上层需要拿到预览数据,则可以设置ImageReader的surface进去;...2、发送预览请求; 3、建立预览会话; 完成这几步,我们就可以看到预览图像了。...,操作就是打开Camera,获取预览数据这些了,通过CameraManager,我们能打开对应Id的camera,然后获取到该id对应的Camera设备实例,这个就是CameraDevice了; 那么接下来就是怎么怎么把

1.6K10

Android Camera2中如何获取预览YUV数据

Camera1中我们可以通过onPreviewFrame接口直接获取到默认为NV21格式的预览数据, 如下图注释所示,还可以通过调用setPreviewFormat方法要求Camera返回YV12格式的预览数据...那么在Camera2的架构中,我们要如何获取NV21或者YV12格式的预览数据呢?...在之前的文章Android Camera2详解中描述到,要获取每一帧的预览数据,我们需要ImageReader这个类的帮助: val imageReader = ImageReader(width, height...420_888,另外两种会抛出UnsupportedOperationException异常 在ImageReader的实例中,参数format设置为YUV_420_888,并注册数据回调后,对于每一帧预览...colOffset += pixelStride } } } return true } 然后按照所需要的格式要求进行调整

6.2K30

Android Camera1显示预览的四种方式

Android Camera1开发系列连载: Android Camera1详解 相机输出的预览画面最终都会绘制到指定的Surface,然后由SurfaceFlinger进行合成并发送给显示设备 Camera1...支持两种方式设置预览的Surface: 通过Camera#setPreviewDisplay方法设置SurfaceHolder给相机,通常在使用SurfaceView作为预览控件时使用; 通过Camera...方式一、使用SurfaceView 使用SurfaceView作为预览UI控件时,在SurfaceHolder#surfaceCreated回调中拿到准备好的SurfaceHolder设置给Camera...方式四、利用buffer数据 向Camera对象注册setPreviewCallback,可以获取到每一帧预览的NV21数据,利用OpenGL绘制NV21数据也可以显示预览(如何使用OpenGL渲染...所以这个方案就比较鸡肋了,需要自己构造一个SurfaceTexture设置给Camera,以便让Camera能回调每一帧预览数据给注册方 DEMO // git branch -a // remotes

3.3K20

Android 利用V4L2 预览MJPEG格式 USB camera

介绍 上一篇文章Android 利用V4L2 调用camera介绍了使用V4L2 接口预览camera的基本方法。...创建成功回调 打开camera camera打开成功回调 获取camera参数 弹框用户选择对应分辨率 设置对应pixformat和分辨率 开始预览 获取到MJPEG数据后,利用libyuv解码 Android...nativieWindow显示 此次大体流程没有变化,着重介绍修改的地方 让用户选择预览图像格式和分辨率 在camera打开成功的回调种,即 CameraStateCallback 的回调onOpened...获取usb camera支持的参数,camera参数格式可以参见文章Android 利用V4L2 调用camera中的获取camera的参数 class CameraStateCallback implements...点击确认后,设置预览参数并开始预览 ret = adCamera.setPreviewParameter(previewWidth, previewHeight, parameters.get(pixClick

1.5K20
领券