1

我正在使用MediaCodec该类使用此链接中给出的代码解码 .mp4 视频。

我能够在屏幕上获得渲染的输出,但是当我尝试访问时outputBuffers[outIndex],我得到一个空指针错误。我无法弄清楚如何访问帧缓冲区以对其进行一些处理。

4

1 回答 1

1

这是预期的(尽管没有记录)行为。您可以将输出发送到 aByteBuffer或 a Surface,但不能同时发送。

此处提供了一些可能感兴趣的其他示例。如果您解码为 a SurfaceTexture,您可以将纹理渲染两次,一次渲染到 a,一次渲染View到 pbuffer 表面。您可以使用glReadPixels来获取数据并对其进行处理,也可以在 GLES 着色器中进行处理。

如果您提取到 a ByteBuffer,您必须自己解释数据,这在使用专有输出格式的设备上是困难的。您会从缓冲区到缓冲区 CTS 测试中注意到,由于格式未知,因此未检查某些设备。

于 2013-09-13T14:57:23.927 回答