在某些设备上,如果没有设置SurfaceView来显示相机预览,则不调用onPreviewFrame.
但是,我在处理相机的服务,所以我不能设置一个SurfaceView,但我不想有可见的预览.
但是,我在处理相机的服务,所以我不能设置一个SurfaceView,但我不想有可见的预览.
如何才能做到这一点?我可以以编程方式创建一个SurfaceView并使用Camera :: setPreviewDisplay进行设置吗?
这是必须的吗?
它几乎在几乎每个手机没有SurfaceView,但不是在HTC One X和谷歌Nexus One …
解决方法
根据
this question,在代码中创建一个SurfaceView工作正常.虽然我不认为你可以通过一个服务来创建它.
另一种方法是在RelativeLayout中创建一个1px-1px的SurfaceView,并在其上面隐藏一些其他视图. (可见度仍然可见).我们使用这个技巧为Path摄像头UI,我们通过OpenGL渲染预览缓冲区,它工作正常.