0

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
4

1 に答える 1