使用 UIImagePickerController -takePicture 拍摄多张照片的推荐方法是啥

Posted

技术标签:

【中文标题】使用 UIImagePickerController -takePicture 拍摄多张照片的推荐方法是啥【英文标题】:what is the recommended approach for taking multiple pictures with UIImagePickerController -takePicture使用 UIImagePickerController -takePicture 拍摄多张照片的推荐方法是什么 【发布时间】:2009-11-24 03:28:12 【问题描述】:

文档暗示了 takePicture 在单个模式视图中多次运行的能力。特别是“这支持在不离开界面的情况下拍摄多张照片,但需要您隐藏默认的图像选择器控件。”

我想在大约 4 秒内拍摄 25 张照片,但是根据我所读到的内容,在紧密循环中执行此操作存在问题。我会在照片之间睡 0.16 秒左右,我怀疑照片之间的时间不够: iPhone: taking a picture programmatically

我会使用 UIGetScreenImage(),但从这里的讨论来看,这似乎会阻止应用程序进入商店: takepicture() vs UIGetScreenImage()

如果有人有任何建议,将不胜感激。

【问题讨论】:

【参考方案1】:

UIGetScreenImage(); is now allowed,应该可以满足您拍摄更多速射照片的需求。

编辑:下面的dredful是正确的。 Apple 已开放访问官方实时视频数据流。

【讨论】:

Apple 似乎改变了它在 UIGetScreenImage() 上的立场。它不再被允许。 tuaw.com/2010/07/21/devsugar-rip-uigetscreenimage【参考方案2】:

如果您致电takePicture,预计将等待大约两秒钟,然后通过didFinishPickingMediaWithInfo 将图片返回给您。我很确定,如果您在返回第一张照片之前再次调用 takePicture,它将无法正常工作,并且您会在调试输出中看到一条消息,上面写着“已经拍照时调用了 takePicture” ,但您可以轻松地亲自尝试该实验。

无论如何,如果你能以每秒六张的速度工作,我会感到非常惊讶。

目前无法以编程方式开始视频捕获,但根据您要完成的工作,您或许可以让用户捕获视频,然后使用 FFmpeg 之类的库从生成的视频剪辑中提取您想要的帧.

【讨论】:

这是一个应用程序,它正在做一些接近你想要的事情:3 秒内 8 张图片。不知道他们是怎么做到的! senstic.com/iphone/burst/burst.aspx 感谢有关预期时间的信息。是的,它基本上是支持没有 3GS 手机的用户的一种解决方法,所以视频不是一个真正的选择,谢谢 ffmpeg 的建议。 哦抱歉直到现在才看到你的评论。看起来真的很有趣,不知道他们是否在使用 UIGetScreenImage.. 进一步评论:我上面错了:didFinishPickingMediaWithInfo 并不需要 2 秒;你会在大约半秒后接到电话,然后可以再拍一张照片。问题是实际对返回的图片进行任何操作大约需要 2 秒,例如制作一个较小的副本,并且一次只有几张全尺寸图像的内存,所以你不能继续长时间将全尺寸图像保存在内存中。 UIGetScreenImage 拍摄小屏幕大小的图片,因此不会有内存问题。 (如果它曾经通过审查被允许。)【参考方案3】:

http://www.redlaser.com/SDK.aspx

“更新:2009 年 11 月 18 日 Apple 现在允许通过审核流程使用 Realtime SDK 的应用程序。如果您使用的是 Photo-Burst SDK,请切换到 Realtime SDK。”

...建议您现在可以使用 UIGetScreenImage 或一些类似的低级调用来比 takePicture 方法更快地捕捉图片。

【讨论】:

他们已经删除了这条消息,所以他们可能不太确定是否批准...support.redlaser.com/discussion/102/Realtime-SDK-Now-Allowed 无赖。无论如何,我会尝试弄乱 UIGetScreenImage 。你知道苹果不允许这样做的理由是什么吗?【参考方案4】:
@property (nonatomic) NO showsCameraControls

允许在不自动关闭相机的情况下拍摄多张照片。

【讨论】:

以上是关于使用 UIImagePickerController -takePicture 拍摄多张照片的推荐方法是啥的主要内容,如果未能解决你的问题,请参考以下文章

相机相册

如何使用 iphone 中的核心数据将图像存储到 sqlite? [复制]

摄像头拍照上传

ViewController 生命周期 UINavigationController

iOS开发——打开手机相册,获取图片

测试使用