首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GLSurfaceView交换问题

GLSurfaceView交换问题
EN

Stack Overflow用户
提问于 2016-11-15 16:23:15
回答 1查看 94关注 0票数 0

我在切换GLSurfaceView时遇到了问题。我有一个GLSurfaceView (与摄像头连接),我想将它移动到另一个视图,但当我移动它时,它丢失了它的帧,并在切换后显示blackScreen。当我将它重新连接到相机时,它开始显示我的相机,但有延迟。

谁能告诉我解决方案,把它移到另一个父母而不丢失它的帧(因为当我重新连接它时,它的显示帧有2-3秒的延迟)。

请看下面的代码:(这里的VideoPanel (扩展GLSurfaceView)是oovooSDK提供的用于显示视频的帧)

代码语言:javascript
复制
                            final VideoPanel movingVideoView = parent1.getChildAt(0);

                            movingView.onPause();

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

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

对于重新连接:

代码语言:javascript
复制
                            application.unbindVideoPanel(videoView.userId, videoView.videoRender);
                            application.unbindVideoPanel(videoView.userId, videoView.videoRender);
                            // this methods shows delay of 2-3 seconds for binding view again

我也尝试了下面的方法

代码语言:javascript
复制
        ((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
EN

回答 1

Stack Overflow用户

发布于 2016-11-15 18:14:21

当您的活动将要结束时,相机不能正常释放。

如果您使用的是曲面视图,则在onSurfaceDestroy中释放相机

代码语言:javascript
复制
public void surfaceDestroyed(SurfaceHolder holder) {
        if(camera!=null){
            camera.stopPreview();
            camera.setPreviewCallback(null);
            camera.release();
            camera = null;
        }

    }

如果你的相机永远不会使用,也建议你释放它。

代码语言:javascript
复制
protected void onDestroy(){
        if(camera!=null){
            camera.stopPreview();
            camera.setPreviewCallback(null);
            camera.release();
            camera = null;
        }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40605063

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档