2013-04-23 85 views
0

我想将视频流式传输到服务器,并同时将其记录在设备上。任何方式来获得预览帧,而录制视频?

如果我不记录视频,我可以使用Camera.onPreviewCallback,其中我得到预览数据作为字节数组,并将数据发送到服务器。

当我开始录制时(我正在使用MediaRecorder),onPreviewCallback不再被调用。

我还能如何从相机获取相框?

回答

1

在摄像头API当前不支持录制视频的同时获取预览回调。

在最新的Android版本上,您可以使用SurfaceTexture作为预览输出,并从GPU读取纹理以发送到服务器,而不是使用预览回调。

+0

谢谢。那么我如何从GPU中读取纹理?我已经建立了一个TextureView而不是SurfaceView,但我该如何继续? – 2013-04-25 07:15:18

+0

你不能直接用TextureView来做,因为它在内部管理自己的OpenGL上下文。 您需要创建自己的OpenGL上下文,使用您选择的纹理ID创建SurfaceTexture,将纹理渲染到帧缓冲区,然后使用glReadPixels读取它。所以这不是微不足道的。 – 2013-04-26 18:19:48