Android 在演示文稿中显示相机双预览和 activity

Android show camera double preview in presentation and activity

问题是我在 activity 中创建了 Camera,我可以在 activity 上轻松显示相机预览。但我想在同一个 activity 中创建一个 Presentation 并且还想让演示文稿可以显示相机预览。我知道通过 Camera.PreviewCallBack 我可以获得一个字节数组,使用这个数组我可以在 canvas 上绘制另一个预览。但我不知道如何将这个字节数组实时传递给演示文稿,也许我不需要那样做。我不确定。

如果您有更好的建议请告诉我。

  1. 在Presentation和Activity中显示两个预览,我们可以通过Camera.Preview得到数据数组YUV_420_888,通过AndroidLivedata我们可以将实时数据传递给PresentationFragment,然后我们可以通过Bitmap转换数据,然后在Presentation上显示预览图。

  2. 在PresentationFragment中使用TextureView,然后getSurfaceTexture,在fragment中创建getSurfaceTexture(),在Activity中调用getSurfaceTexture,然后使用这个SurfaceTexture获取相机预览。但是有一点棘手,当我第一次调用 getSurfaceTexture() 时,我得到了“空对象引用”,我发现当我在 onResume() 中调用 getSurfaceTexture() 时, PresentationFragment 中的 onCreateView() 可能没有被调用,所以我们如果 onCreateView() 完成,则需要创建一个侦听器或其他函数来处理,然后调用 getSurfaceTexture;