我正在尝试实现屏幕录像机。我跟着grafika。只需将 Surface 提供encoder.getInputSurface()
给 VirtualDisplay 即可。现在我的任务是对屏幕的某个部分进行编码。因此,我试图使用 SurfaceTexture 修改编码器的输入 Surface(我认为这是正确的方法)。但我无法使用创建的表面来记录屏幕,当我将此表面传递给 VirtualDisplay 时,我没有得到任何回调。我也尝试使用 TextureMovieEncoder(来自 grafika)进行录制,但可能我不知道正确的方法。
我试图通过以下有用的链接来理解。 解码器的输出表面如何传递到编码器的输入表面?
和
Android:是否可以在没有 SurfaceView 的情况下创建 SurfaceTexture?
而且我确信 grafika 是一个很棒的教程,但我被卡住了。
请提出解决方案或其他可行的方法。我现在被困了好几天。