【发布时间】:2013-11-07 17:06:39
【问题描述】:
理想情况下,我想实现两个目标:
- 通过
Surface将Camera预览数据传递给MediaCodec编码器。我可以使用MediaCodec.createInputSurface()创建Surface,但Camera.setPreviewDisplay()需要SurfaceHolder,而不是Surface。 - 除了将
Camera预览数据传递给编码器之外,我还想在屏幕上显示预览(这样用户就可以实际看到他们正在编码的内容)。如果不涉及编码器,那么我会使用SurfaceView,但这似乎在这种情况下不起作用,因为SurfaceView创建了自己的Surface,我想我需要使用@ 创建的那个987654334@.
我在网上搜索了很多解决方案,但没有找到。 bigflake.com 上的一些示例似乎是朝着正确方向迈出的一步,但它们采用的方法增加了我想避免的一堆 EGL/SurfaceTexture 开销。我希望有一个更简单的示例或解决方案,我可以让Camera 和MediaCodec 更直接地交谈,而不涉及 EGL 或纹理。
【问题讨论】:
标签: android camera surfaceview encoder android-mediacodec