Android相机:“setParameters failed”,支持预览

时间:2015-07-16 20:05:47

标签: java android camera

所有其他SO帖子 java.lang.RuntimeException: setParameters failed 围绕人们设置他们不应该向cameraParameters设置或试图将其设置为它不支持的预览尺寸。

但是我得到了支持的相机尺寸列表并将其设置为支持的尺寸。

    /**
     * Sets the cameraParams to new size based on display size
     */
    void setPreviewAndSurfaceHolderSize()
    {
        List<Camera.Size> sizesOfPreviews = _camera.getParameters().getSupportedPreviewSizes();
        Camera.Size size = getOptimalPreviewSize(sizesOfPreviews, displayWidth, displayHeight);
        printCameraPreviewSizes();
        _previewSize = size;
        int cameraPreviewWidth = size.width;
        int cameraPreviewHeight = size.height;

        System.out.println("Optimal camera preview size is " + cameraPreviewWidth + " x " + cameraPreviewHeight);
        Camera.Parameters params = _camera.getParameters();
        params.setPreviewSize(cameraPreviewWidth, cameraPreviewHeight);
}

我的应用程序允许用户更改相机预览的大小(从正方形到矩形)。因此,我需要切换相机以适应视图。我得到最近支持的预览尺寸并使用它。但是当它使用1280 x 720时,即使它被列为受支持的值之一,它也会崩溃。

当你设置的唯一属性是预览尺寸并且支持预览尺寸时,你能想到为什么setParameters会在相机上失败吗?

更新

经过一些测试,如果我在1280 x 720中硬编码它没有崩溃,它不会崩溃,但是当从其他维度切换到它时,它有时会崩溃(但我无法让它可靠地崩溃)。我怀疑存在某种竞争条件,但我不知道。

0 个答案:

没有答案