异常与TangoCameraPreview

异常与TangoCameraPreview

问题描述:

编辑异常与TangoCameraPreview

我实现了TangoCameraPreview本身在测试应用程序,它工作正常。我认为这个错误是由我的应用程序的具体情况造成的。我使用拉贾瓦利呈现一些图形在我的应用程序,所以这可能是吧,但我不知道......

原始

我使用的Java API和尝试使用TangoCameraPreview class而不是像他们在examples中那样构建我自己的SurfaceView和Renderer。但它看起来像是在JNI层面失败了,我无法得到它的工作。有时候,我会看到一秒钟的视频,但不可避免地,我总是得到错误:

12-30 17:20:03.544 4005-4515/com.gloppygloop W/tango_client_api: TangoErrorType TangoService_updateTexture(TangoCameraId, double*): TangoService got a negative timestamp -1.000000 from camera with id 2. 
12-30 17:20:03.546 4005-4515/com.gloppygloop E/TangoCameraPreview: Error updating texture. 
                    com.google.atap.tangoservice.TangoInvalidException 
                     at com.google.atap.tangoservice.Tango.throwTangoExceptionIfNeeded(Tango.java:826) 
                     at com.google.atap.tangoservice.Tango.updateTexture(Tango.java:333) 
                     at com.google.atap.tangoservice.TangoCameraPreview.updateTexture(TangoCameraPreview.java:267) 
                     at com.google.atap.tangoservice.TangoCameraPreview$MainRenderer.onDrawFrame(TangoCameraPreview.java:117) 
                     at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1523) 
                     at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1240) 

我基本上只是调用TangoCameraPreview.onFrameAvailable,每当我有OnFrameAvailable从OnTangoUpdateListener就像他们在推荐文档。据我所知,它只是因为JNI方法无法正确地从相机中获取时间戳并导致错误。我正在尝试使用Fisheye相机,但我也尝试了Color相机和RGBIR相机。

找到了解决方案,所以我只是把它留在这里,以防其他人陷入困境。问题在于我在TangoCameraPreview的相同上下文中使用了另一个GLSurfaceView。经过一番搜索后,我发现this answer为我清理了一些东西。基本上,只要你在同一个环境中有多个SurfaceView,就需要意识到这些视图的Z顺序。否则,你只会像我遇到的那样出现奇怪的行为。 Tango错误只是误导,因为即使TangoCameraPreview按照预期运行,我仍然收到错误。