图像已被捕获或相机尚未准备好

时间:2012-07-05 12:35:01

标签: iphone ios xcode uiimagepickercontroller

我正在调用此takePicture函数5次,因为我需要在onclick(突发模式)上拍摄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

2 个答案:

答案 0 :(得分:0)

不确定,但我认为相机还没有准备好......因为你试图连续捕捉图像......我想你必须要再延迟几秒才能再次拍照拍照.....不要做它在for循环中我想建议你使用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];
    }
}

答案 1 :(得分:0)

Hi H2SO4(Nice Name han)

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

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

HTH,

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

您可以延迟跟随。

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

更多信息,请访问...

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