我有非常基本的相机初始化代码,可让我预览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();
...
}
答案 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();
...
}