4

所以我有一个应用程序,目前可以使用前置 iphone 摄像头捕获视频,然后对视频源进行实时处理。然而,我想要做的是让这个过程在后台运行,并将其他控件放在屏幕上。例如,假设我想运行相机并处理图像馈送,但我希望用户看到带有一些按钮的黑屏。关于如何做到这一点的任何想法?

4

2 回答 2

16

就像我们正确理解术语一样,“在后台”是指在您的应用程序处于前台时运行相机捕获,但不显示实际的视频源。这是可能的,但我想明确一点,如果您将整个应用程序移到后台,您将无法访问相机。

有几种方法可以做到这一点,但我用得最多的一种方法是通过 AV Foundation 抓取视频(或照片)帧。使用 AVCaptureDevice 和 AVCaptureSession,您可以抓取视频帧并将它们路由到编码器以保存到磁盘或使用您自己的自定义代码进行处理。这些都不需要在屏幕上显示相机源,因此您可以放置​​您喜欢的任何界面,并在没有任何屏幕指示的情况下进行视频录制或照片捕捉。

我提醒您,您应该向您的用户明确说明您在做什么,这样您就不会冒着侵犯他人隐私的风险。Apple 不会对这样做的人做出友好的反应(有充分的理由)。

我在我的开源GPUImage视频和照片处理框架中封装了很多这些内容,因此您可以查看那里的 GPUImageVideoCamera 类的代码,以了解我如何配置捕获输入。我将视频帧交给 OpenGL ES 以应用过滤器和其他处理操作,但如果您只想进行自己的编码或处理,则可以忽略这部分。

于 2012-07-05T16:16:04.297 回答
1

以下是 Apple 文档中的示例代码:http: //developer.apple.com/library/ios/#samplecode/PhotoPicker/Introduction/Intro.html 还有自定义相机界面的方法。

于 2012-07-05T15:03:32.760 回答