【问题标题】:Google Glass - SurfaceView inside a Live CardGoogle Glass - Live Card 中的 SurfaceView
【发布时间】:2014-06-23 19:32:19
【问题描述】:

我正在开发一个 Google Glass 应用程序,它使用实时卡片和在后台运行的 SurfaceView。我想要做的是在我的自定义视图中创建一个虚拟 SurfaceView,实时卡正在使用 DirectRenderingCallback 呈现。我在评论 #3 中引用了 project 并且它有效,但不同之处在于我没有使用任何活动来创建 SurfaceView(如果重要的话)。

我遇到的问题是,每次尝试启动相机预览时,都会收到一条消息,提示“应用程序通过了 NULL 表面”。我不知道是不是因为我在服务中创建了 SurfaceView,但我似乎无法让它工作。此外,surfaceCreated() 永远不会被调用。

据我所知,我的代码没有任何问题,或者我如何设置实时卡。我已经浏览了他们 Github 页面上的 glass 文档和所有 GDK 示例。总而言之,我试图通过使用 Live Card 将流从相机获取到 SurfaceView 中。我做错了什么,还是我应该做一些不同的事情来完成这个?

谢谢。

【问题讨论】:

    标签: android-camera surfaceview google-glass google-gdk


    【解决方案1】:

    嗯,在我的项目中它是“半工作”,因为我可以显示图像但红色和蓝色被交换,我仍然不知道为什么。

    所以我所做的就是在课堂上:

    public class CameraView extends SurfaceView implements SurfaceHolder.Callback{
    

    我创建了surface,然后在surfaceCreated上打开相机并准备好参数:

        camera = Camera.open();
        Parameters parameters = camera.getParameters();
        parameters.setPreviewFpsRange(30000, 30000);            
        camera.setParameters(parameters);   
    

    在surfaceChanged上设置显示并开始预览:

        if (camera != null){                    
            try {
                camera.setPreviewDisplay(holder);
            } catch (IOException e) {
                this.releaseCamera();
            }
            camera.startPreview();
        }
    

    这对我有用,希望对你有帮助!

    【讨论】:

    • 你如何显示这个视图?
    • 使用surfaceView,但这是我的颜色问题出现的地方。这就是为什么该类说“扩展 SurfaceView 实现 SurfaceHolder.Callback”,网上有很多关于如何实现这一点的文献。
    • 我明白,但我可能应该在我的问题中更明确。您如何根据应用程序的构建方式显示此视图?是使用带有directRenderingCallback 的高频直播卡,还是带有RemoteViews 的低频直播卡?无论哪种情况,如果没有收到“应用程序通过 NULL 表面”消息,我都无法以编程方式创建 SurfaceView。
    • 嗯,好吧,我远不是专家,但请查看project,这是我作为参考的,可能会给您所问的答案。跨度>
    猜你喜欢
    • 2013-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多