如何像iPhone中的Talking Tomcat应用程序一样录制屏幕视频?

时间:2011-08-08 09:52:45

标签: iphone video opengl-es avassetwriter glreadpixels

嘿,我正在尝试记录我的游戏的游戏,以便我可以从设备本身将其视频上传到youtube ... m尝试做与iPhone的会说话的tomcat应用程序相同的事情...记录视频然后播放它等...

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

我认为会说话的tomcat也是在Opengl ES的帮助下制作的,它也有视频录制设备但是在读取每个帧的任何想法时它都不会减慢......?

2 个答案:

答案 0 :(得分: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部分.. 干杯

答案 1 :(得分:0)

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

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

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

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

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