Nexus 7 2013与Android L相机问题:未调用onPreviewFrame

时间:2014-10-16 13:45:24

标签: android camera android-camera android-5.0-lollipop

我有非常基本的相机初始化代码,可让我预览Acer A500(Android 3.1)和Ainol Novo 9(Android 4.1.1)。我刚买了一台Nexus 7 2013,安装了Android L预览版,发现我的相机相关代码不再有效。摄像头已成功初始化,不会抛出任何异常,包括startPReview()调用。但是,onPreviewFrame根本没有被调用。可能是什么原因?

可能是因为我只有一个虚拟的SurfaceView没有显示在任何地方吗?

private SurfaceView   m_surfaceView = new SurfaceView(CameraTestApplication.instance().getApplicationContext());
private SurfaceHolder m_surfaceHolder = m_surfaceView.getHolder();

void initCamera()
{
   m_openedCamera = Camera.open(0);
   ...
   m_openedCamera.setPreviewDisplay(m_surfaceHolder);
   m_openedCamera.setPreviewCallback(this);
   openedCamera.startPreview();
   ...
}

1 个答案:

答案 0 :(得分:0)

修正了问题。事实上,它与我的人工SurfaceView有关 - 我做的不够好。但是,这有效:

private SurfaceTexture m_previewTexture = new SurfaceTexture(8743);


void initCamera()
{
   m_openedCamera = Camera.open(0);
   ...
   m_openedCamera.setPreviewTexture(m_previewTexture);
   m_openedCamera.setPreviewCallback(this);
   openedCamera.startPreview();
   ...
}