2

我想开发一个应用程序,它将有 2 个按钮和 SurfaceView(实际上是一个类扩展了 SurfaceView 实现了 SurfaceHolder.Callback)。

当用户单击 button1 - 使用 ScreenCapture 时,我将获取图像并使用媒体编解码器,我将进行 vp8 编码并将输出保存在字节缓冲区中。(我没有保存在文件位置)

当用户单击 button2 时 - 我需要在 SurfaceView 上显示它,并使用捕获的 bytebuffer 输出。

我试过

MediaCodec 解码器 = MediaCodec.createDecoderByType("video/x-vnd.on2.vp8"); 解码器.dequeueOutputBuffer(mBufferInfo, DEFAULT_TIMEOUT_US);

......

但无法更新表面视图。

如何使用字节缓冲区数据更新表面视图?

4

1 回答 1

0

我得到了答案... mMediaCOdec.releaseOutputBuffer(index, true)... -- 这里我将 render 设置为 false。如果将渲染值设置为 true,那么我可以绘制或设置捕获的图像。使用 releaseOutputBuffer (int index, long renderTimestampNs) -- 我们可以渲染图像。但仅在 API 级别 21 中受支持。谢谢..

于 2015-03-05T13:08:26.613 回答