2016-11-15 6 views
0

GLSurfaceView를 전환하는 동안 문제가 있습니다. 나는 GLSurfaceView (카메라와 연결됨)를 가지고 있고 그것을 다른 뷰로 옮기기를 원하지만, 움직일 때 프레임을 잃어 버리고 전환 후 blackScreen을 보여주고있다. 카메라에 다시 연결하면 내 카메라가 시작되지만 지연됩니다.GLSurfaceView 스위칭 문제

프레임을 잃지 않고 다른 부모에게 옮길 수있는 해결책을 알려줄 수 있습니까? (2-3 초 지연과 함께 표시 프레임을 다시 연결할 때).

찾아주세요 아래 코드는 작성 : 다시 연결에 대한

      final VideoPanel movingVideoView = parent1.getChildAt(0); 

          movingView.onPause(); 

          parent1.removeView(movingView); 
          parent2.addView(movingView); 

          movingView.onResume(); 
          movingView.requestRender(); 

(여기 VideoPanel은 (GLSurfaceView를 확장) 비디오를 보여 oovooSDK에서 제공하는 프레임이다) :

      application.unbindVideoPanel(videoView.userId, videoView.videoRender); 
          application.unbindVideoPanel(videoView.userId, videoView.videoRender); 
          // this methods shows delay of 2-3 seconds for binding view again 

가 나는 또한 방법

다음 시도는
 ((VideoPanel) videoView.videoRender).setPreserveEGLContextOnPause(true); 
     // to save context when paused 
((VideoPanel)videoView.videoRender).setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY); // to render frame again when requestRender is called 

답변

0

카메라가 없습니다. 당신의 활동이 끝날 때 적절한 석방.

이제까지 사용하지 않을 않다면 당신은 또한 출시에게 카메라를 추천

public void surfaceDestroyed(SurfaceHolder holder) { 
     if(camera!=null){ 
      camera.stopPreview(); 
      camera.setPreviewCallback(null); 
      camera.release(); 
      camera = null; 
     } 

    } 

onSurfaceDestroy

에 카메라를 출시보다 표면보기를 사용하는 경우.

protected void onDestroy(){ 
     if(camera!=null){ 
      camera.stopPreview(); 
      camera.setPreviewCallback(null); 
      camera.release(); 
      camera = null; 
     } 
} 
+0

내 질문을 이해하지 못했다고 생각합니다. : / – NehaK