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

标签 android camera surfaceview preview

在某些设备上,如果没有设置 SurfaceView 来显示相机预览,则不会调用 onPreviewFrame。 但是,我在服务中处理相机,所以我无法设置 SurfaceView 但无论如何我都不想看到可见的预览。

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

这一定是可能的还是不可能的?

它适用于几乎所有没有 SurfaceView 的手机,但不适用于 HTC One X 和 Google Nexus One...

最佳答案

根据 this question ,在代码中创建一个 SurfaceView 效果很好。尽管我不认为您可以通过服务来创建它。

另一种方法是在 RelativeLayout 中创建一个 1px-1px SurfaceView 并将其与其他 View 一起隐藏在其上。 (可见性仍应为 VISIBLE)。我们将此技巧用于 Path我们通过 OpenGL 渲染预览缓冲区的相机 UI,它工作正常。

关于Android:在没有 SurfaceView 的情况下从未调用过 onPreviewFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10786213/

相关文章:

java - 将带有空格的字符串解析为 Date,导致 ParseException

c++ - 如何在 directx11 中将相机移动窗口的 1 个像素单位而不是世界空间中的 1 个单位?

camera - 我可以将 Sony HDR-AS100 连接到现有接入点吗

Android SurfaceView 不在纵向模式下创建

Android SurfaceView 宽度/高度

android - 为什么我的应用没有显示在 Google Play 的平板电脑上?

android - Google fit Recording API延迟

android - Gstreamer、Raspberry Pi 和 Android。如何获取流媒体视频?

ios - 由于光线不足,如何在自动闪光模式下打开或关闭闪光灯时收到通知

android - 如何在 surfaceview 类中保存分数/高分(int)?