GLSurfaceView の切り替え中に問題が発生しています。GLSurfaceView (カメラに接続) があり、それを別のビューに移動したいのですが、移動するとフレームが失われ、切り替え後に blackScreen が表示されます。カメラに再接続すると、カメラが表示され始めますが、遅延があります。
フレームを失うことなく別の親に移動する解決策を教えてください(再接続すると、2〜3秒の遅延でフレームが表示されるため)。
以下に書かれたコードを見つけてください:
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