2016-07-01 2 views
0

저는 google-project-tango를 처음 사용합니다. 나는 구글 익스플로러 랩과 비슷한 포인트 클라우드 애플리케이션을 만들고 싶다. 탱고 카메라 미리보기를 살펴보고 코드를 추가했습니다. 오른쪽 상단 구석에서 카메라 피드를 볼 수 없습니다.자바 포인트 클라우드에 비디오 오버레이 추가하기

@Override protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_jpoint_cloud); 

    mTangoCameraPreview = (TangoCameraPreview)findViewById(R.id.VideoOverLay); 
    mRenderer = setupGLViewAndRenderer(); 
    mPointCloudManager = new TangoPointCloudManager(); 
    mTangoUx = setupTangoUxAndLayout(); 

    setupTextViewsAndButtons(); 
} 

이 연결 탱고 방법 : 사전에

private void connectTango() { 
    // Connect to color camera 
    mTangoCameraPreview.connectToTangoCamera(mTango, 
      TangoCameraIntrinsics.TANGO_CAMERA_COLOR); 

    // Use the default configuration plus add depth sensing 
    TangoConfig config = mTango.getConfig(TangoConfig.CONFIG_TYPE_DEFAULT); 
    config.putBoolean(TangoConfig.KEY_BOOLEAN_DEPTH, true); 
    mTango.connect(config); 
    mIsConnected.set(true); 

    // Listen for new Tango data 
    mTango.connectListener(FRAME_PAIRS, new OnTangoUpdateListener() { 
     @Override 
     public void onPoseAvailable(final TangoPoseData pose) { 
      // Passing in the pose data to UX library produce exceptions. 
      if (mTangoUx != null) { 
       mTangoUx.updatePoseStatus(pose.statusCode); 
      } 
     } 

     @Override 
     public void onXyzIjAvailable(final TangoXyzIjData xyzIj) { 
      if (mTangoUx != null) { 
       mTangoUx.updateXyzCount(xyzIj.xyzCount); 
      } 
      mPointCloudManager.updateXyzIj(xyzIj); 

      final double currentTimeStamp = xyzIj.timestamp; 
      final double pointCloudFrameDelta = (currentTimeStamp - mXyIjPreviousTimeStamp) 
        * SECS_TO_MILLISECS; 
      mXyIjPreviousTimeStamp = currentTimeStamp; 
      final double averageDepth = getAveragedDepth(xyzIj.xyz); 

      mXyzIjTimeToNextUpdate -= pointCloudFrameDelta; 

      if (mXyzIjTimeToNextUpdate < 0.0) { 
       mXyzIjTimeToNextUpdate = UPDATE_INTERVAL_MS; 
       final String pointCountString = Integer.toString(xyzIj.xyzCount); 

       runOnUiThread(new Runnable() { 
        @Override 
        public void run() { 
         mPointCountTextView.setText(pointCountString); 
         mAverageZTextView.setText(FORMAT_THREE_DECIMAL.format(averageDepth)); 
        } 
       }); 
      } 
     } 

     @Override 
     public void onTangoEvent(final TangoEvent event) { 
      if (mTangoUx != null) { 
       mTangoUx.updateTangoEvent(event); 
      } 
     } 

     @Override 
     public void onFrameAvailable(int cameraId) { 
      // Check if the frame available is for the camera we want and 
      // update its frame on the camera preview. 
      if (cameraId == TangoCameraIntrinsics.TANGO_CAMERA_COLOR) { 
       //Log.d("Message:","Camera"); 
       mTangoCameraPreview.onFrameAvailable(); 
      } 
     } 
    }); 

} 

감사합니다, Gurjeet 싱 나는이 문제의 해결책을 발견

답변

1

여기 내 코드입니다. TangoCameraPreview 대신 TangoTextureCameraPreview 클래스 사용