2012-12-30 42 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中找到關於此問題的更多討論。