2016-11-15 7 views
0

GLSurfaceViewの切り替え中に問題が発生しています。私はGLSurfaceView(カメラと接続)を持っていて、別のビューに移動したいのですが、移動しているときにフレームを消して切り替えた後にblackScreenを表示しています。私はそれをカメラに再接続すると、カメラが遅れて表示されます。GLSurfaceViewスイッチングの問題

フレームを失うことなく他の親に移動するように教えてください(2〜3秒の遅延で表示フレームを再接続するとき)。

の下に書かれたコードを見つけてください:再接続する (ここでVideoPanel(GLSurfaceViewを拡張)映像を表示するためにoovooSDKが提供するフレームである)

      final VideoPanel movingVideoView = parent1.getChildAt(0); 

          movingView.onPause(); 

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

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

      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

カメラはありませんあなたの活動が終了するときに適切なリリース。

あなたは今まで使用するつもりはない場合もリリースをあなたのカメラをお勧めしますonSurfaceDestroy

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

    } 

にカメラをリリースよりも表面図を使用している場合。

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

私の質問を理解できなかったと思います。 – NehaK

関連する問題