我正在制作安卓游戏。(使用andengine)我需要记录游戏画面。这不是为了制作宣传视频,而是为了让游戏玩家回顾他们的游戏。我的应用程序应该自己录制视频。所以我无法使用市场上可用的录音应用程序来解决这个问题。我已经检查了下面的代码。
它工作得很好..但我想录制游戏视频,而不是一个截图。
至少我需要 24fps 才能顺利回放,但如果我使用 glreadpixels ,我可以在我的 xoom 设备上获得 5 fps。我搜索了各种网站来解决这个优化问题。大多数人说 glreadplxels 录制视频太慢了。
http://www.gamedev.net/topic/473794-glreadpixel-takes-tooooo-much-time/
他们推荐 glcopyteximage2d 而不是 glreadpixels。因为 glcopyteximage2d 比 glreadpixels 快得多。但我找不到如何在andengine中使用glcopyteximage2d。甚至有人说android opengl ES 不支持glcopyteximage2d。
也许存在另一种方法来录制流畅的视频。它是 android 设备的读取帧缓冲区。市场上的大多数录音应用程序都使用这种方法。但这些应用程序需要 root 权限才能获取帧缓冲区。我读过一些消息,Android 将在姜饼之后支持从 suface_flinger 捕获屏幕。
但我不知道如何在没有 root 权限的情况下使用帧缓冲区。T_T
这些是我的猜测解决方案。
使用另一个比 glreadpixels 速度更快的 opengl API。
发现一些android API可以在没有root权限的情况下获取framebuffer。(也许我可以访问 android SURFACE_FLINGER ??)
绘制另一个屏幕外纹理来录制视频。
但我不知道如何实现这些方法。哪种方法是正确的?你有为安卓录制视频的示例代码吗?请帮我解决这个问题。如果您知道任何其他方法,那将很有帮助。
任何帮助将不胜感激