我正在尝试实现屏幕录像机。我跟着grafika。简单地将Surface从encoder.getInputSurface()
发布到VirtualDisplay就可以了。现在我的任务是编码屏幕的某个部分。所以,我试图使用SurfaceTexture修改编码器的输入Surface(我认为这是正确的方法)。但我无法使用创建的曲面来记录屏幕,当我将此Surface传递给VirtualDisplay时,我没有得到任何回调。我也尝试使用TextureMovieEncoder(来自grafika)进行录制,但可能是我不知道正确的方法。
我尝试通过以下用户链接了解。 How does an output surface of a Decoder is passed to an input surface of an Encoder?
和
Android: Is it possible to create a SurfaceTexture without a SurfaceView?
我相信grafika是一个很棒的教程,但我被卡住了。
请建议解决方案或其他可行的方法。我现在被困了几天。
我认为正确的方法如下:
关键过程是步骤4.在渲染过程中,您可以通过修改纹理坐标来裁剪框架。
下面有一个作物示例:Crop video before encoding with MediaCodec for Grafika's "Continuous Capture" Activity