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

よくわかりませんが、カメラはまだ準備ができていないと思います...連続して画像をキャプチャしようとしているため....写真撮影メソッドを再度呼び出す前に、数秒遅らせる必要があると思います..... loop ループ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

Hi H2SO4 (ナイスネームはん)

最も可能性の高い理由は、info.plist ファイルに必要なキーがないことです。を構成する必要がありますUIRequiredDeviceCapabilities。また、デリゲート オブジェクトを実装する必要があります。詳しくはこちらをご覧ください

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

HTH、

ループ内のすべての呼び出しでリソースを解放する必要があるもう 1 つのこと。

以下で遅らせることができます。

[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 に答える