1

我调用此takePicture函数 5 次,因为我需要在点击时拍摄 5 张照片(连拍模式)

for(count=0;count<5;count++)
{
     [picker takePicture];
     [NSThread sleepForTimeInterval:0.5];
     [[NSRunLoop currentRunLoop] runMode: NSDefaultRunLoopMode beforeDate: [NSDate date]];
}

我收到此错误UIImagePickerController: ignoring request to take picture; image is already being captured or camera not yet ready

4

2 回答 2

0

不确定,但我认为相机还没有准备好......因为你正在尝试连续捕捉图像......我认为你必须延迟几秒钟才能再次调用拍照方法......不要这样做循环我想建议你请使用NSTimer而不是循环。

像这样的东西 -

宣布

-(void)startTimer; 

int count; 

在您的 .h 类中,然后查看以下代码 -

-(void)yourTakePictureButtonClick:(id)sender
{
    [self startTimer];
}

-(void)startTimer
{
    count = 0;
    yourTimer = [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(myFunctionForClickImage) userInfo:nil repeats:YES];
}

-(void)myFunctionForClickImage
{
    [picker takePicture];
    count ++;
    if (count < 5)
    {
       [yourTimer invalidate];
    }
}
于 2012-07-05T12:41:05.480 回答
0

嗨 H2SO4(好名字 han)

最可能的原因似乎是 info.plist 文件中缺少所需的密钥。您将需要配置UIRequiredDeviceCapabilities. 此外,您必须实现委托对象。有关详细信息,请查看

http://developer.apple.com/library/ios/#documentation/AudioVideo/Conceptual/CameraAndPhotoLib_TopicsForIOS/Articles/TakingPicturesAndMovies.html#//apple_ref/doc/uid/TP40010406

高温下,

另一件事你应该在循环内的每个调用中释放你的资源。

您可以延迟以下。

[picker performSelector:@selector(takePicture) withObject:nil afterDelay:2.0];

更多您可以访问...

http://highoncoding.com/Articles/856_Building_Instagram_for_the_iPhone_Part_2.aspx

于 2012-07-05T12:41:14.700 回答