使用LiveCard在Google Glass上显示相机预览_和_自定义SurfaceView?

时间:2014-01-22 14:25:20

标签: android camera surfaceview google-glass

我正在尝试使用LiveCard在Google Glass上进行相机录制和绘图。

在常规活动中,这可以通过使用FrameLayout,使用SurfaceView进行相机预览(在后面),以及另一个用于绘图的视图来实现。

但是使用LiveCard,如果需要亚秒级更新,则必须使用LiveCard本身作为Surface。根据文件:https://developers.google.com/glass/develop/gdk/reference/com/google/android/glass/timeline/LiveCard

  

如果您的应用程序需要更频繁的更新(每次更新几次)   第二)或渲染比标准小部件更精细的图形   支持,启用直接渲染并添加SurfaceHolder.Callback   卡的表面。

 LiveCard liveCard; // initialized elsewhere
 liveCard.setDirectRenderingEnabled(true);
 liveCard.getSurfaceHolder().addCallback(callback);   You can then draw directly on the surface inside a background thread or in response
     

到外部事件(例如,传感器或位置更新)。使用   surfaceCreated和surfaceDestroyed方法来启动和停止你的   在显示或隐藏卡片时呈现逻辑。

现在我可以在这个Surface上绘制我的东西,或者我可以将它作为相机预览服务提供给MediaRecorder,但不能同时执行这两项操作,因为它会因错误而失败

我想知道是否有人对如何使这项工作有想法?

我自己绘制LiveCard的方式是“手动”锁定画布,并调用FrameLayout.draw(画布);一个选项是使布局包含两个SurfaceViews - 一个用于相机预览,一个用于我自己的绘图,并使用相同的方法。但是,即使我用XML定义这样的布局,我也无法创建SurfaceViews(例如,从不调用相应的SurfaceView回调,任何在它们上绘制的尝试都会导致失败)

0 个答案:

没有答案