捕捉延时帧 - iPhone相机

时间:2012-04-13 01:21:52

标签: iphone objective-c xcode camera

我正在尝试编写一些Objective-c代码,允许在特定的时间延迟后通过iPhone摄像头捕获帧。我在网上找到的任何例子都捕获了摄像机输入的“当前”帧(即实时帧捕获)。我正在寻找一种不太实时的帧捕获 - 一种捕获具有特定时间延迟的帧的方法。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

我会使用NSTimer。 它允许您使用捕获当前帧的代码,并在延迟后调用它。

您可以创建一个非重复的计时器,如下所示:timer = [NSTimer scheduledTimerWithTimerInterval:delay target:self selector:@selector(capture) userInfo:nil repeats:NO];其中delay是特定的时间延迟,capture是一个方法,其中包含捕获现在的示例中的代码帧。

答案 1 :(得分:0)

使用以下代码.....

//根据您需要的延迟调用方法.....

    float yourdelay;
    yourdelay = 0.7;
    [self performSelector:@selector(captureView) withObject:nil afterDelay:yourdelay];

//或设置调用方法的时间....

[NSTimer scheduledTimerWithTimeInterval:0.02 target: self selector:@selector(captureView) userInfo:nil repeats:NO];

///或者您可以在需要时直接调用方法..

[self captureView];

////这里是捕获实时图像的代码。

- (void)captureView {

UIGraphicsBeginImageContext(mapView.frame.size);
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
flickerImaveView.image=viewImage;    
}

希望这会对你有帮助....