java - getPreferredPreviewSizeForVideo() 是获取正确预览尺寸的好方法吗?

标签 java android camera preview

我正在构建 Android 应用程序的一部分,用于显示相机预览。我想为当前设备设置正确(最佳)的预览尺寸。

为了实现这一点,我使用了以下代码:

public void surfaceChanged(SurfaceHolder surfaceHolder, int format, int w, int h) {
    Parameters parameters = camera.getParameters();
    List<Size> sizes = parameters.getSupportedPreviewSizes();

    // the list seems to be in that order, that the best quality is the first element
    parameters.setPreviewSize(sizes.get(0).width, sizes.get(0).height);

    camera.setParameters(parameters);
    camera.startPreview();
}

现在我的问题是,以下方法是否可以更好地为任何设备获得最佳预览质量?

public void surfaceChanged(SurfaceHolder surfaceHolder, int format, int w, int h) {
    Parameters parameters = camera.getParameters();

    Size preferredSize = parameters.getPreferredPreviewSizeForVideo();
    parameters.setPreviewSize(preferredSize.width, preferredSize.height);

    camera.setParameters(parameters);
    camera.startPreview();
}

目前我只有一台设备(Nexus 4),在这台设备上,两种方法的结果相同。但我想知道您会建议哪种方法。

最佳答案

我真的不推荐使用这种方法。在 Galaxy S4 上,此方法返回首选视频预览尺寸 176x144。似乎开发人员不小心在这里返回了最小而不是最大的尺寸...如果您使用它作为预览,它看起来很难看,甚至会破坏录制的视频。

关于java - getPreferredPreviewSizeForVideo() 是获取正确预览尺寸的好方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15465282/

相关文章:

java - 使用 twitter4j 检索精确的图像大小

Java - 如何使用 SwingWorker 创建多线程游戏

java - 在 Java 中循环列表以检查值

android - 如何使用 POST 使用 NameValuePair 将参数添加到 HttpURLConnection

ios - 使用大型 UIImage 数组时的内存问题导致崩溃(快速)

java - 如何在 GPath 中按属性值查找元素?

java - 应用程序没有响应

android - 你如何使整个控件在 android 中可点击?

java - Libgdx:FitViewPort 不工作

c# - 将实时镜头从摄像机流式传输到Unity3D