Android 摄像头后台采集

由于某些特殊要求,可能在Android视频采集是需要不回显,只在后台进行采集


1. 传统做法需要使用SurfaceView,通过SurfaceView 获取SurfaceHolder,


通过调用 Camera.setPreviewDisplay,设置Holder,才可以进行视频预览;


2. 为了脱离 SurfaceView,实现后台采集,可以Camera.setPreviewTexture接口,


SurfaceTexture st = new SurfaceTexture(0);
mCamera.setPreviewTexture(st);


这样既可以达到后台采集视频的目的,切勿用于非法用途


by Frank ()


转载请注明出处。

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Android 上使用 V4L2 进行摄像头采集需要以下步骤: 1. 打开摄像头设备:可以使用 `open()` 系统调用来打开摄像头设备,例如 `/dev/video0`。 2. 查询摄像头设备支持的格式和分辨率:可以使用 `ioctl()` 系统调用和 `VIDIOC_QUERYCAP` 命令来查询设备的支持情况。 3. 配置摄像头设备参数:可以使用 `ioctl()` 系统调用和 `VIDIOC_S_FMT` 命令来设置摄像头设备的参数,例如图像格式、分辨率、帧率等。 4. 分配缓冲区:可以使用 `ioctl()` 系统调用和 `VIDIOC_REQBUFS` 命令来分配摄像头设备的缓冲区。 5. 将缓冲区映射到用户空间:可以使用 `mmap()` 系统调用将摄像头设备的缓冲区映射到用户空间中。 6. 启动摄像头采集:可以使用 `ioctl()` 系统调用和 `VIDIOC_STREAMON` 命令来启动摄像头采集。 7. 读取采集的数据:可以使用 `read()` 系统调用从摄像头设备的缓冲区中读取采集到的数据。 8. 停止摄像头采集:可以使用 `ioctl()` 系统调用和 `VIDIOC_STREAMOFF` 命令来停止摄像头采集。 9. 释放缓冲区:可以使用 `ioctl()` 系统调用和 `VIDIOC_REQBUFS` 命令来释放摄像头设备的缓冲区。 10. 关闭摄像头设备:可以使用 `close()` 系统调用来关闭摄像头设备。 这些步骤可以通过编写 C/C++ 代码来实现。在 Android 平台上,也可以使用 Camera2 API 或 CameraX API 来进行摄像头采集,这些 API 都提供了更高级别的抽象和功能。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值