Camera.getParameters()。getSupportedPreviewSizes()在模拟器中返回NULL

时间:2011-10-24 04:31:01

标签: android sdk android-camera

相机和Android版本有问题。 我尝试获取Android Camera flow支持的预览尺寸,如下所示:

@Override
public void surfaceCreated(SurfaceHolder holder) {
    // TODO Auto-generated method stub
    mCamera = Camera.open();
    mSupportedPreviewSizes = mCamera.getParameters()
            .getSupportedPreviewSizes();
    try {
        mCamera.setPreviewDisplay(holder);
    } catch (IOException exception) {
        mCamera.release();
        mCamera = null;
    }
}

我尝试使用模拟器(Android 2.2 SDK&& Android 2.1 SDK)在2个Android版本上测试我的代码 在Emulator中配置两个版本的Android,如下所示:

Skin : HVGA
Abstracted LCD density : 160

我的问题: 当我在模拟器上运行我的应用程序 - 2.2 SDK:好的 - 好的 但是当我在Emulator上运行时 - 2.1 SDK:有一个问题“mCamera.getParameters()。getSupportedPreviewSizes()return is NULL”

如果你知道的话,请帮助我! 非常非常感谢..........很多....

2 个答案:

答案 0 :(得分:2)

Google将此列为缺陷,我认为这意味着有计划修复它: http://code.google.com/p/android/issues/detail?id=6271

我在一些运行android的硬件设备上遇到过这种情况,一直到4.0。到目前为止,我唯一能做的就是处理getSupportedPreviewSizes()返回null的情况。它并不总是发生在我身上,所以如果我发现这已经发生了,我通常会破坏并重新实例化我的预览表面和相机。

答案 1 :(得分:1)

你应该在Camera.unlock()之前和Camera.lock()之后调用getSupportedPreviewSizes()