我想开发一个应用程序,它将有2个按钮和SurfaceView(实际上一个类扩展了SurfaceView实现了SurfaceHolder.Callback)。
当用户点击button1 - 使用ScreenCapture时,我将获得一个图像并使用mediacodec,我将执行vp8编码并在bytebuffer中保存输出。(我不保存在文件位置)
当用户点击button2时 - 我需要在SurfaceView上显示捕获的bytebuffer输出。
我试过
MediaCodec decoder = MediaCodec.createDecoderByType(“video / x-vnd.on2.vp8”); decoder.dequeueOutputBuffer(mBufferInfo,DEFAULT_TIMEOUT_US);
.....
但无法更新surfaceview。
如何使用bytebuffer数据更新surfaceview?
答案 0 :(得分:0)
我得到了答案...... mMediaCOdec.releaseOutputBuffer(index,true)... - 这里我将render设置为false。如果将渲染值设置为true,那么我可以绘制或设置捕获的图像。 使用releaseOutputBuffer(int index,long renderTimestampNs) - 我们可以渲染图像。但仅在API级别21中受支持。 感谢..