AVCam demoを使用して、 AVCamViewController.mで次の変更を行うことにより、実際に写真が撮影される前に 5 秒の遅延を追加しようとしています。
- (IBAction)captureStillImage:(id)sender
{
// Capture a still image
[[self stillButton] setEnabled:NO];
// delay picture capture by 5 seconds
myTimer = [NSTimer scheduledTimerWithTimeInterval: 5.0
target: self
selector: @selector(pictureTimer:)
userInfo: nil
repeats: NO];
}
- (void) pictureTimer: (NSTimer *) timer {
[[self captureManager] captureStillImage];
}
ただし、AVCamCaptureManager::captureStillImage の完了ハンドラーは呼び出されないようです (「captureStillImage 完了ハンドラー」ログ メッセージは表示されません)。
- (void) captureStillImage
{
AVCaptureConnection *stillImageConnection = [AVCamUtilities connectionWithMediaType:AVMediaTypeVideo fromConnections:[[self stillImageOutput] connections]];
if ([stillImageConnection isVideoOrientationSupported])
[stillImageConnection setVideoOrientation:orientation];
NSLog(@"captureStillImage");
[[self stillImageOutput] captureStillImageAsynchronouslyFromConnection:stillImageConnection
completionHandler:^(CMSampleBufferRef imageDataSampleBuffer, NSError *error) {
NSLog(@"captureStillImage completion handler");
これは NSTimer を使用しても機能しませんか?