gpt4 book ai didi

android - 需要绘制到 MediaRecorder 使用的表面

转载 作者:行者123 更新时间:2023-12-05 06:42:15 25 4
gpt4 key购买 nike

我需要录制一个只包含一个帧的视频:用户指定的图像(可以是任意长度,但只会有相同的静态图像)。所以,我想我可以使用新的 MediaRecorder.VideoSource.SURFACE 并只绘制到记录器使用的 Surface 上。我正确地初始化了记录器,我什至可以毫无异常(exception)地调用 MediaRecorder.getSurface()(这显然很棘手)。

我的问题有点尴尬:我不知道如何处理返回的表面。我需要以某种方式绘制它,但我能找到的所有示例都涉及绘制到 SurfaceView。此表面是否与 MediaRecorder.setPreviewDisplay() 使用的表面相同?如何向其绘制内容?

最佳答案

理论上你可以使用Surface#lockCanvas()如果您想在软件中渲染,可以使用 Canvas 进行绘制。曾经有 problems with this在某些平台上;不确定是否已修复。

另一种选择是从 Surface 创建一个 EGLSurface 并使用 OpenGL ES 渲染到它上面。您可以在 Grafika 中找到这方面的示例,以及一些管理所有 EGL 设置的代码。 .

GLES录制示例使用的是MediaCodec而不是MediaRecorder,但是思路是一样的,用MediaRecorder应该会简单很多。

关于android - 需要绘制到 MediaRecorder 使用的表面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37691085/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com