我正在开发一种使用Android
手机摄像头作为接收器的光(LED)通信系统,对相机帧进行阈值处理。为此,我使用了预览的回调方法onPreviewFrame
。
为了更加准确,需要每隔几帧延迟帧的捕获,以便系统重新同步。
我的问题是:
*要限制相机fps的费率,我使用setPreviewFpsRange
,setAutoWhiteBalanceLock
和setAutoExposureLock
。
答案 0 :(得分:0)
您可以尝试在API级别21中添加的较新的android.hardware.camera2软件包,它将替换已弃用的Camera类,并提供对Camera功能的精细控制:
获取CameraManager服务
CameraManager manager = (CameraManager) context.getSystemService(Context.CAMERA_SERVICE);
检索设备上可用的相机列表
String[] cameraIdList = manager.getCameraIdList();
通过cameraList迭代选择具有所需特征的相机
for(String cameraId:cameraIdList)
{
CameraCharacteristics characteristics = manager.getCameraCharacteristics(cameraId);
}
使用预览创建相机回调课程并仍然捕捉请求
private class CameraCallback extends CameraDevice.StateCallback
{
@Override
public void onOpened(CameraDevice camera)
{
CaptureRequest previewRequest = camera.createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW).build();
CaptureRequest stillCaptureRequest = camera.createCaptureRequest(CameraDevice.TEMPLATE_STILL_CAPTURE).build();
}
}