我想对来自相机的视频进行一些更改。 所以我使用扩展SurfaceView类的类并实现SurfaceHolder.Callback。
现在,我仍然没有找到任何改变方法。 我该怎么做?
答案 0 :(得分:2)
您可以尝试使用SurfaceTexture而不是SurfaceView,并使用onFrameAvailable(...)方法实现SurfaceTexture.OnFrameAvailableListener接口。在视频帧到达时,Surface将回调此方法,您可以获取当前帧数据。
请参阅Android Camera的类PanoramaActivity APK采样代码的源代码。
答案 1 :(得分:1)
这很复杂,很难实时完成。基本上你需要抓取相机数据,修改它,然后将其写入SurfaceView。而你实际上有半秒的时间来做,否则滞后是无法忍受的。
在相机视图上覆盖物品的应用程序(想想ZXing条形码扫描仪)通常通过提供绑定到相机的视图,然后每秒几次抓取相机图像数据的第二份副本并覆盖其他数据来实现在第一个视图之上。