Nexus 5和Nexus 7中的setParameters失败

3

我在我的应用中实现了自定义相机。在除Nexus 5和Nexus 7之外的所有设备上都可以正常工作。在这两个设备上,它会崩溃并显示“相机设置参数失败”。我使用以下代码实现了自定义相机:

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");
        }
    }

我在很多地方看到评论说这是由于不支持的预览尺寸,但在我的情况下,我已经使用支持的预览尺寸了。

1个回答

1
我曾遇到一样的问题,使用相同的代码将预览大小更改为其他支持的预览大小在不同的平板电脑上都可以工作,但在我的 Nexus 平板电脑上却不行。我的情况是,在更改预览大小之前已经开始预览了。在开始预览之前更改预览大小解决了我的问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接