在android中将SurfaceView动画录制为视频文件

在android中将SurfaceView动画录制为视频文件,android,mp4,android-mediacodec,mediamuxer,Android,Mp4,Android Mediacodec,Mediamuxer,上次我调查了android()上的视频导出,这不是一项容易的任务 这里有一个场景:我有一个SurfaceView和一个在x,y坐标处绘制的位图。用户点击图像并将其拖动到步骤2和步骤3 所以基本上如果我记录了触摸所经过的所有x,y,我可以通过以一定的帧速率绘制位图来重放动画 现在的问题是:是否有一种简单的方法可以通过使用android组件(无ffmpeg)将SurfaceView中的“动画”录制到视频文件中?据我所知,可以录制SurfaceView的事件,您必须记录屏幕,因为SurfaceVie

上次我调查了android()上的视频导出,这不是一项容易的任务

这里有一个场景:我有一个SurfaceView和一个在x,y坐标处绘制的位图。用户点击图像并将其拖动到步骤2和步骤3

所以基本上如果我记录了触摸所经过的所有x,y,我可以通过以一定的帧速率绘制位图来重放动画


现在的问题是:是否有一种简单的方法可以通过使用android组件(无ffmpeg)将SurfaceView中的“动画”录制到视频文件中?

据我所知,可以录制SurfaceView的事件,您必须记录屏幕,因为SurfaceView不同,并且不在普通视图层次中绘制

事实上,在某些情况下,应用处理器甚至无法访问SurfaceView的显示数据-它可能是硬件视频管道的输出,通过专用视频覆盖与应用处理器的显示输出合成


一种创造性的方法是在活动期间同时捕获屏幕,并从位图创建MOV。请参见:

因为您正在进行渲染,所以只需渲染两次:一次渲染到显示器,一次渲染到视频。这假设您只需要SurfaceView内容。。。如果还需要其他视图,则需要使用屏幕录制方法

有关工作示例,请参见中的“记录总账应用”。对于API21+,您可以渲染到一个。如果您只需要一个.mp4文件,这可能会更容易