iPhoneでできるだけ早く、カメラで写真を撮って保存しようとしています。問題は、最後まで保存せずに永遠に、または約1/2〜3/4を保存しない(Write busy
エラーまたは-[NSKeyedUnarchiver initForReadingWithData:]: data is NULL
)ことです。iPhoneカメラは写真をすばやく撮影しますが、保存に問題があります
私は電話のメモリを過負荷にしていますが、それを効率的に処理する方法は考えられません。標準的なiPhoneのカメラアプリはそれをうまく処理できます - ほぼ1枚/秒でスナップして問題なく保存できます。
どのようにプロセス/メモリを管理して、それが保存されてもすぐに瞬時に撮影できるようにするためのアイデアはありますか?
ここに私のコードがあります。 self.readyToTake = YES
の場合はtakePicture
が呼び出されます。
- (void)takePicture { self.delegate = self; [super takePicture]; self.readyToTake = NO; } - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { self.readyToTake = YES; UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage]; UIImageWriteToSavedPhotosAlbum(image, self, @selector(image:didFinishSavingWithError:contextInfo:), nil); } - (void)image:(UIImage*)image didFinishSavingWithError:(NSError *)error contextInfo:(NSDictionary*)info { if (error) { NSLog([NSString stringWithFormat:@"** ERROR SAVING PHOTO: %@", [error localizedDescription]]); } }
ありがとうございました!
EDIT
私は480×640のように、保存する前に、はるかに小さい寸法に写真のサイズを変更した場合、私は何の問題に迅速節約を持っていません。しかし、私はフルサイズの画像をキャプチャして保存したいと思っています。ネイティブのカメラアプリはそれをうまく処理しているようです。
問題と上のいくつかの機能を使用してフォトアルバムに保存することができますしてください前の写真が保存された後に次の写真を有効にするということは、カメラがもはや急速に撮影しないことである。ほとんどの写真は約3〜5秒で保存できます。 –
私たちはいくつかのバックグラウンドスレッドで保存機能を実行することができますが、それでも3〜5秒かかる場合、プロセスジャンクにつながる可能性があります...それはすべて私が推測するハードウェアに依存します... – Ilanchezhian