我正在尝试编写一些Objective-c代码,允许在特定的时间延迟后通过iPhone摄像头捕获帧。我在网上找到的任何例子都捕获了摄像机输入的“当前”帧(即实时帧捕获)。我正在寻找一种不太实时的帧捕获 - 一种捕获具有特定时间延迟的帧的方法。有什么想法吗?
答案 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;
}
希望这会对你有帮助....