我在切换 GLSurfaceView 时遇到问题。我有一个 GLSurfaceView(与相机连接),我想将它移动到另一个视图,但是当我移动它时,它会丢失帧并在切换后显示 blackScreen。当我将它重新连接到相机时,它开始显示我的相机,但有延迟。
谁能告诉我解决方案,将它移动到另一个父级而不丢失其帧(因为当我重新连接它时,它的显示帧延迟 2-3 秒)。
请找到下面写的代码:(这里的VideoPanel(扩展GLSurfaceView)是oovooSDK提供的用于显示视频的Frame)
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