【问题标题】:GetSupportedPreviewSize returns reverse width and heightGetSupportedPreviewSize 返回反向宽度和高度
【发布时间】:2012-06-30 19:13:20
【问题描述】:

我正在使用 DroidX 开发一个使用相机预览图像的应用。我正在使用的代码在网络上的许多地方都可以找到,但我注意到常用方法“getBestPreviewSize(width,height,camera.parameters)”返回的尺寸太小,以至于标准 decodeYUV420SP 方法因空指针异常而失败。

一些调试显示我的 DroidX 支持的PreviewSizes 是:

  • 144h x 176w
  • 240h x 320w
  • 288h x 352w
  • 480h x 640w
  • 480h x 720w
  • 448h x 800w
  • 720h x 1280w

请注意,高度和宽度的值给出了横向视角。这不会随相机方向而改变。传递给getBestSupportedPreviewSizes 的表面的宽度和高度为 480w x 778h。

当我将 camera.parameters 传递给 getBestSupportedPreviewSizes() 时,它会返回 288 x 352 大小。这是调用代码 - 如果格式关闭,我很抱歉,但这里是:

      if (!cameraConfigured) {
        Camera.Parameters parameters=camera.getParameters();
        Camera.Size size=getBestPreviewSize(pwidth, pheight, parameters);
        if (size!=null) {
          parameters.setPreviewSize(size.width, size.height);
          camera.setParameters(parameters);
          cameraConfigured=true;
        }
    }

pwidthpheight 来自 surfaceChanged 回调的宽度和高度参数。 我试过 camera.setDisplayOrientation(90);在 onResume() 中。我还在清单中添加了方向(“Portrait”) - 这些尝试的 4 种组合似乎都没有改变这种行为。

我的想法是简单地扭转它们,但在很多层面上感觉都是错误的。由于这个免费提供的代码似乎已经在许多其他示例中证明了自己,我显然在接近它是错误的。任何人都可以对这种行为提供一些见解吗?

提前致谢。

【问题讨论】:

    标签: android android-camera preview


    【解决方案1】:

    考虑相机的正确方法是在横向模式下,这意味着当您在纵向模式下考虑相机时,宽度和高度会感觉“翻转”。

    getBestPreviewSize( w, h, p ) 函数只是对Camera.ParametersgetSupportedPreviewSizes() 函数的一个包装,因此传入的宽度和高度不会改变 bestPreviewSize 函数的结果。

    【讨论】:

    • 谢谢丹尼尔。我有点困惑。据我了解,我们将表面尺寸传递给 getBestPreviewSizes() 并返回最佳拟合宽度和高度以设置预览尺寸。因此,如果宽度小于高度(如在纵向模式下),则返回的宽度将小于相机的高度,或者返回的高度将小于相机的宽度。所以我不明白它如何不影响 getBestPreviewSize 函数的结果。我的想法中缺少什么?
    • 我在网上看到的大多数 getBestPreviewSizes() fns 只使用宽度和高度来查找具有良好纵横比的预览尺寸。无论高宽是否翻转,纵横比都是一样的。
    • 这回答了你的问题吗?
    • 是的,我同意丹尼尔,谢谢。我可以通过将宽度交换为高度来获得最佳预览尺寸,以从 getBestPreviewSize 获得可能的最大预览尺寸。也许我解释得不好,但解决方案似乎是交换 w & h 进入 getBestPreviewSIze,但似乎没有其他人有这个问题。
    • 我有问题。一年前我最后一次弄乱这段代码时,我以前没有它。现在 getSupportedPreviewSizes() 正在返回面向横向的值对(宽度大于高度)。如果相机处于纵向模式,我该怎么做才能从 getSupportedPreviewSizes() 获取纵向模式值?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-01
    • 2022-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-14
    • 1970-01-01
    相关资源
    最近更新 更多