【问题标题】: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()

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

【问题讨论】:

    标签: iphone animation


    【解决方案1】:

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

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

    【讨论】:

    【解决方案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 方法更快地捕捉图片。

    【讨论】:

    【解决方案4】:
    @property (nonatomic) NO showsCameraControls
    

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

    【讨论】:

      猜你喜欢
      • 2011-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多