5

嘿,我正在尝试记录我的游戏的游戏玩法,以便我可以将其视频从设备本身上传到 youtube……我正在尝试做与 iPhone 版 Talking tomcat 应用程序相同的事情……录制视频然后播放等等……

我使用 glReadPixels() 读取帧缓冲区数据,然后借助 AVFoundation 框架中的 AVAssetWriter 将其写入视频。但是,只有在使用 glReadPixels 时,读取每个绘图上的数据才会将 FPS 从大约 30-35 降低到 2-3。

我认为Talking tomcat也是在Opengl ES的帮助下制作的,它还具有视频录制功能,但是在阅读每一帧时它不会减慢任何想法......?

4

2 回答 2

8

如果有人想实现相同的..我自己想通了。首先令我惊讶的是,我发现会说话的 tomcat 不是 3D 游戏应用程序……它对所有动作都使用帧动画。如果有人想捕捉这种观点,那么他们可以使用以下代码——

UIGraphicsBeginImageContext(self.view.bounds.size); //self.view.window.frame.size
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIImageWriteToSavedPhotosAlbum(viewImage, nil, nil, nil);

然后使用 AVAssetWriter 从该帧创建视频。当然你可以在其他帖子中找到代码。对我来说它没有用,因为我必须捕捉 3D 部分。干杯

于 2011-08-18T11:20:10.710 回答
0

这个问题并不新鲜,但我想我会投入:

我们提供了一个名为“Everyplay”的 SDK,让您可以完全按照自己的意愿行事。它可以免费使用,而且重量轻。

我们为 Unity3D、cocos2d(1.x、2.x)、cocos2d-x 提供开箱即用的集成,您当然可以集成到自定义的基于 OpenGL 的游戏引擎。

该文档位于https://developers.everyplay.com/doc

该文档包含开发时使用的示例应用程序密钥,但您当然可以在https://developers.everyplay.com/注册自己的客户端密钥

于 2013-02-06T08:08:36.833 回答