【发布时间】:2015-05-04 12:17:19
【问题描述】:
我已经在我的应用中实现了自定义摄像头。它在除 Nexus 5 和 Nexus 7 之外的所有设备上都可以正常工作。在这两种设备中,它在相机上因 SetParameters failed 而崩溃。我已经使用以下代码实现了自定义相机:
public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {
if (mCamera != null) {
Log.e(TAG, "surfaceChanged called");
Camera.Parameters parameters = mCamera.getParameters();
if (mSupportedPreviewSizes != null) {
mPreviewSize = getOptimalPreviewSize(mSupportedPreviewSizes, w,
h);
}
Log.e(TAG, "surfaceChanged : mPreviewSize height:"
+ mPreviewSize.height + " width: " + mPreviewSize.width);
parameters.setPreviewSize(mPreviewSize.width, mPreviewSize.height);
requestLayout();
mCamera.setParameters(parameters);
Log.e(TAG, "surfaceChanged called setParameters success");
}
}
我在很多地方发现这是由于不受支持的预览大小造成的,但在我的情况下,我已经从支持的预览大小中获取它。
【问题讨论】: