5

ユーザーがバーコードをスキャンしたり、何かの写真を撮りたい場合に選択できるアプリに取り組んでいます。撮影はUIImagePickerControllerいつものように使っています。バーコードのスキャンには ZbarSDK 1.2 を使用していZBarReaderViewControllerます。

写真を撮るとき、すべてが完璧に機能します。バーコードをスキャンする場合: アプリを起動して、写真を撮る前にバーコードをスキャンすると、それも完璧に機能します。

しかし、写真を撮ってから戻ってバーコードをスキャンしようとすると、カメラはオートフォーカスを失い、バーコードをスキャンすることは不可能です.

要約すると:
開始 -> スキャン ->オート フォーカスが機能している
開始 -> 写真を撮る -> 戻る -> スキャン ->オート フォーカスが機能していない

これは、バーコード スキャナーを初期化する方法です。

-(ZBarReaderViewController *) barcodeScanner
{
    if (nil == _barcodeScanner)
    {
        _barcodeScanner = [ZBarReaderViewController new];
        _barcodeScanner.readerDelegate = self;
        _barcodeScanner.cameraMode = ZBarReaderControllerCameraModeSampling;
        _barcodeScanner.sourceType = UIImagePickerControllerSourceTypeCamera;
    }
    return _barcodeScanner;
}

何か案は?

4

3 に答える 3

4

ZBarReaderViewController をロードする前に、必ず UIImagePickerController を解放してください。UIImagePickerController をロードする前に、ZBarReaderViewController を解放してください。

なぜ私が集中力を失い続けているのかを理解するのに何日もかかりました。この答えにつまずく他の人のために...一度に1つのAVCaptureSessionしか持つことができません。そうしないと、物事がおかしくなり、集中する能力が失われます。ZBarReaderViewController は AVCaptureSession を使用するため、新しい AVCaptureSession を初期化する前に必ず解放してください。

于 2012-03-08T12:53:02.357 に答える
1

Zbar で同じ問題に直面していたので、モデル ビューを閉じる前に 2 秒の遅延を設けることで解決しました。

于 2013-11-19T08:14:53.017 に答える
0

写真撮影の実装を詳しく調べます。写真の撮影が完了したら、リソースを正しく閉じたかどうかを確認してください。zBar の実装はそれとは何の関係もないと思います...

于 2011-12-29T08:22:40.010 に答える