2012-12-30 38 views
-2

我扩展了OpenCV4Android示例(基于2.4.3.1中的JavaCameraView),以在我的应用程序中执行一些视觉处理。除了任何4.x电话以外,处理工作在2.3.3及以上。我已经调查这个问题,它好像问题是,下面的行用于:OpenCV android ICS

mCamera.setPreviewDisplay(null); 

显然ICS不喜欢被交给空surfaceView。 4.x上的结果是屏幕显示为黑色,并且没有帧传递给onPreviewFrame()。

我真的很感谢这方面的帮助!

完整的代码可以发现here

+0

请勿在没有周边代码的情况下发布单行。您发布的行是传统回退,并且从未在Android 4.x上由OpenCV示例调用。 –

+0

单线的原因是指我认为问题是。我已更新以引用我正在使用的文件 - JavaCameraView。有一些样本使用该类,并且mCamera.setPreviewDisplay已被明确使用。 – alistair

+0

刚刚测试过sample3 - Native,我得到了相同的结果。我只是问是否有解决这个问题的方法。 – alistair

回答

0

答案是我正在使用2.4.3.1,这在ICS上不起作用,正如我所说的。我没有意识到它已被固定在2.4.3.2,这只是改变的问题中提及到该行:需要改变,以3.0使用表面纹理

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { 
     mSurfaceTexture = new SurfaceTexture(MAGIC_TEXTURE_ID); 
     getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); 
     mCamera.setPreviewTexture(mSurfaceTexture); 
    } else 
     mCamera.setPreviewDisplay(null); 

目标。

您可以在Google Groups中找到关于此问题的更多讨论。