如何使用从相机捕获的UIImage创建AVAsset?

时间:2011-09-27 19:27:47

标签: iphone ios avfoundation

我是一个尝试使用AVFoundation捕捉相机视频图像的新手 想要在不使用AVCaptureVideoPreviewLayer的情况下渲染捕获的帧。一世 希望滑块控件能够减慢速度或加快显示速度 相机图像。

使用其他人的代码作为示例,我可以捕获图像并使用NSTimer, 使用我的滑块控件可以动态定义显示它们的频率,但是我 无法将图像转换为我可以显示的内容。我想移动这些 将图像放入UIView或UIImageView并在计时器Fire函数中渲染它们。

我看过Apples AVCam应用程序,(使用AVCaptureVideoPreviewLayer) 但因为它有自己内置的AVCaptureSession,我无法调整频率 显示图像。 (好吧,你可以调整预览图层帧率但是 这不能在飞行中完成)

我查看了AVFoundation编程指南,该指南讨论了AVAssets 和AVPlayer等,但我看不出如何将相机图像变成一个 AVAsset。当我查看AVFoundation指南和其他演示如何的演示时 为了定义一个AVAsset,它只给我选择使用http流数据 创建资产,或使用现有文件定义资产的URL。我不能 弄清楚如何将我捕获的UIImage变成AVAsset,在这种情况下我猜 我可以使用AVPlayer,AVPlayerItems和AVAssetTracks来显示图像 observeValueForKeyPath函数检查状态并执行[myPlayer play]。 (我还研究了WWDC会议405“探索AV基金会”,看看它是怎么回事 已完成)

我尝试过与WWDC Session 409“在iPhone上使用相机”类似的代码。 就像myCone演示一样,我可以设置设备,输入,捕获会话, 输出,设置CMSampleBuffer的回调函数,以及I. 可以收集UIImages并调整它们的大小等。此时我想发送该图像 到UIView或UIimageView。会话409只谈到了这样做 CFShow(sampleBuffer)。这没有解释,我猜它只是假设一个 核心基金会的知识我还没有。我想我正在转变被捕获的 将示例缓冲区中的输出转换为UIImage,但我无法弄清楚如何渲染 它。我在我的nib文件中创建了一个IBOutlet UIImageView,但是当我尝试填充时 将图像放入该视图中,不会显示任何内容。我需要AVPlayerLayer吗?

我已经将UIImagePickerViewController视为另一种方法 控制我显示捕获的相机图像的频率,我没有看到我 可以使用该控制器动态更改时间以显示图像。

所以,正如你所看到的,我正在通过Apple开发论坛学习这些东西 他们的文档,WWDC视频和各种网站,如 stackoverflow.com但还没有看到任何做相机到屏幕的例子 不使用AVCaptureVideoPreviewLayer,UIImagePickderViewController或者 使用不是文件或http流的AVAsset。

有人可以提出建议吗?提前谢谢。

0 个答案:

没有答案