Android:onPreviewFrame从未在没有SurfaceView的情况下调用

在某些设备上,如果没有设置SurfaceView来显示相机预览,则不调用onPreviewFrame.
但是,我在处理相机的服务,所以我不能设置一个SurfaceView,但我不想有可见的预览.

如何才能做到这一点?我可以以编程方式创建一个SurfaceView并使用Camera :: setPreviewDisplay进行设置吗?

这是必须的吗?

它几乎在几乎每个手机没有SurfaceView,但不是在HTC One X和谷歌Nexus One …

解决方法

根据 this question,在代码中创建一个SurfaceView工作正常.虽然我不认为你可以通过一个服务来创建它.

另一种方法是在RelativeLayout中创建一个1px-1px的SurfaceView,并在其上面隐藏一些其他视图. (可见度仍然可见).我们使用这个技巧为Path摄像头UI,我们通过OpenGL渲染预览缓冲区,它工作正常.

相关文章

ADB Remote ATV Android TV 的遥控器,基于 ADB Shell 命令 ...
使用Flutter自带的SearchDelegate组件实现搜索界面,通过魔改...
上篇文章讲解了怎么使用Kotlin的协程配合Retrofit发起网络请...
安卓开发——WebView+Recyclerview文章详情页,解决高度...
Android 如何解决dialog弹出时无法捕捉Activity的back事件 在...