我正在开发一个应用程序,用户将在屏幕上与宠物互动,我想让他将其保存为视频。
有没有“简单”的方法来捕捉应用程序本身的屏幕?
我找到了一种解决方法(每秒保存一些位图,然后将它们传递给编码器),但它似乎太重了。即使帧速率为15fps,我也会很开心
似乎有可能,即有一个类似的应用程序,它称为“会说话的汤姆”
答案 0 :(得分:2)
这实际上取决于您实施“宠物视图”的方式。你在画布上画画吗? OpenGl ES?普通的Android视图层次结构?
无论如何,没有像其中一条评论那样神奇的“recordScreenToVideo()”。
你需要:
获取代表“框架”的位图。 这取决于您实现视图的方式。如果您自己绘制(Canvas或OpenGL),则将原始像素缓冲区保存为帧。 如果使用普通视图层次结构,则将Android的onDraw子类化并保存在画布上获得的“框架”。系统调用onDraw的频率不低于屏幕的实际“帧速率”。如果需要,之后复制帧以提供15fps视频。
对帧进行编码。好像你已经有了一个机制来做到这一点,你只需要它更有效率。
您可以优化编码方式:
希望有所帮助