2010-01-17 72 views
1

我想开发一个用户程序,可以在按下停止按钮后捕捉和保存最后30秒的视频。保存最近30秒的视频

1)我们是否可以控制视频录制?

2)我们怎样才能得到最后30秒的视频?

+0

有没有任何答案帮助你?只需单击复选标记即可将其标记为已接受的解决方案或将其投票。请检查您的其他问题以获取可能的解决方案。谢谢!:)(是的,这是复制粘贴,以便新用户知道投票系统。) – 2010-01-17 09:48:53

+0

这是这个问题的重复:http://stackoverflow.com/questions/2047257/capture-last-30-second - 视频 - 从 - iphone – 2010-01-17 16:14:05

回答

0

关于的UIImagePickerController

UIImagePickerController类 管理系统提供的用户界面 的选择,并采取 图片和电影,支持 设备。使用此类从用户获取这些媒体类型的一个 。 该班级管理用户交互 并将这些 交互的结果报告给关联的代理对象。

除了默认的摄像头 接口,在iPhone OS 3.1和更高版本 您可以管理摄像头的相互作用 自己,如果需要的话。您可以提供 自定义叠加视图以显示 自定义拍照界面和 您可以启动拍摄来自代码的 图片。您的自定义 叠加视图可以显示在 之外或替代 图像0​​提供的默认控件拾取器界面。

但我的问题仍然存在,我们如何管理视频的捕获时间?

0

一种技术是将视频帧保存到环缓冲区。使环缓冲区足够大以存储30秒的视频。使用循环缓冲区,您可以使用填充指针同时定义流的开始和结束。当你添加到缓冲区时,相应地增加指针。当用户按下“停止”时,重写缓冲区,以便填充指针处的数据位于缓冲区的开始处(基本上,您正在旋转缓冲区中的所有数据,以便正确的点位于开始处)。这是您的原始视频数据,代表最近30秒。您可能需要一个计数器来表示已经填充了多少秒,以防止在不到30秒后按停止。

3

如果我们可以设法使用UIImagePickerController以15/fps的速率获取图像。

然后制作大小为15 * 30的缓冲区。

创建队列NSMutableArray在您获取新帧并在队列末尾添加新帧时删除第一帧。

最后当用户按停止按钮。创建一个视频(使用自定义codac)。

我不确定,但它可以帮助。