在用Camera类做摄像头项目时,需要调用setPreviewFrameRate来设置摄像头的PreviewFrameRate,这个时候需要获取系统支持的PreviewFrameRate值,在低版本sdk
中getSupportedPreviewFrameRates不能用,怎么办呢?自己写个吧,请参阅下面的代码:
public List<Integer> GetSupportedPreviewFrameRates() { List<Integer> list = new ArrayList<Integer>(); try { String KEY_PREVIEW_FRAME_RATE = "preview-frame-rate-values"; String str = mParms.get(KEY_PREVIEW_FRAME_RATE); String[] arr = str.split(","); int cnt = arr.length; for (int i = 0; i < cnt; i++) { list.add(Integer.parseInt(arr[i])); } } catch (Exception e) { CommonHelper.OutputException(mTag, e); list = null; } return list; }
当然了,上面函数中的mParms 是通过下面类似的代码获取的private Camera.Parameters mParms; private Camera mCamera = null; if (mCamera != null) return; // 打开摄像头 try { mCamera = Camera.open(); } catch (Exception e) { return; } mParms = mCamera.getParameters();