如何限制android摄像头的预览fps范围?

如何限制android摄像头的预览fps范围?,android,android-camera,frame-rate,Android,Android Camera,Frame Rate,有可能限制android摄像头的fps范围吗。。 试图更改.setPreviewFpsRange()中的值。。。但是帧速率没有改变。。它每秒连续出现30帧您可以使用public List getSupportedPreviewFpsRange()检查设备支持的FPS范围。这是我的: 预览fps范围值=(1000010000),(1500015000),(1500030000),(300000000) 因此,如果我想将fps更改为15,我可以setPreviewFpsRange(150001500

有可能限制android摄像头的fps范围吗。。
试图更改.setPreviewFpsRange()中的值。。。但是帧速率没有改变。。它每秒连续出现30帧

您可以使用
public List getSupportedPreviewFpsRange()
检查设备支持的FPS范围。这是我的:

预览fps范围值=(1000010000),(1500015000),(1500030000),(300000000)


因此,如果我想将fps更改为15,我可以
setPreviewFpsRange(1500015000)
我使用此代码将预览帧速率设置为可能的最低速率,但您可以使用列表索引中的
l_last
而不是
l_first
将其设置为可能的最高速率(
mCamera
是引用相机的成员变量,并在代码的其他位置设置)

Camera.Parameters l_params=mCamera.getParameters();
List frameRates=l_params.getSupportedPreviewFpsRange();
int l_first=0;
int l_last=frameRates.size()-1;
int minFps=(frameRates.get(l_first))[Camera.Parameters.PREVIEW_FPS_MIN_INDEX];
int maxFps=(frameRates.get(l_first))[Camera.Parameters.PREVIEW_FPS_MAX_INDEX];
l_参数setPreviewFpsRange(最小fps,最大fps);
设置参数(l_参数);

这是有效的。但是如果只有一个fps范围可用,那么如何做…限制回拨以避免更多帧速率的任何方法都是安全的。根据您的策略,您可以在预览回调函数中执行任何操作以编程方式更改fps。例如,您可以丢弃帧或休眠线程几毫秒。已使用thred.sleep。。但它会阻止其他线程..你能举一些例子让drop frames这样做吗..你是如何睡眠你的线程的?你应该在onPreviewFrame(字节[]数据,摄像头)中使用它,其中您还可以处理所有预览帧。@yushulx您可以看看这个问题:Camera.Parameters在Android中已被弃用。我认为它应该是l_last,而不是l_first,在第六行:“int maxFps=(frameRates.get(l_last))[Camera.Parameters.preview_FPS_MAX_INDEX];”你是如何检查它是每秒30帧的?你能分享代码示例吗?
Camera.Parameters l_params = mCamera.getParameters();

List<int[]> frameRates = l_params.getSupportedPreviewFpsRange();
int l_first = 0;
int l_last = frameRates.size() - 1;
int minFps = (frameRates.get(l_first))[Camera.Parameters.PREVIEW_FPS_MIN_INDEX];
int maxFps = (frameRates.get(l_first))[Camera.Parameters.PREVIEW_FPS_MAX_INDEX];
l_params.setPreviewFpsRange(minFps, maxFps);

mCamera.setParameters(l_params);