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