Utilizar la biblioteca de Zxing en PreviewFrame para aumentar la realidad
¿Puede alguien decirme cómo puedo usar la Biblioteca Zxing para una aplicación de Realidad Aumentada? Sé que la forma más fácil de usar Zxing es a través de Intent, pero necesito la vista de cámara, así que no puedo usar la aplicación de código de barras.
Tengo un SurfaceHolder.Callback
que se agrega a la actividad principal y sobrescribe el siguiente método:
- Cómo importar la biblioteca ZXING en la aplicación Android?
- Cómo reiniciar la cámara de manera eficiente en un fragmento - Barcode Scanner
- Escáner de código de barras ZXing para Webapps
- GridLayoutManager spanSizeLookup error
- Incorporar la biblioteca Zxing sin utilizar la aplicación Scanner de códigos de barras
@Override public void surfaceCreated(SurfaceHolder holder) { mCamera = Camera.open(); try { mCamera.setPreviewDisplay(holder); } catch (IOException e) { Log.d(TAG, "Can not set surface holder"); } mCamera.startPreview(); Parameters parameters = mCamera.getParameters(); parameters.setPreviewSize(1280, 720); parameters.setPictureSize(1280, 720); mCamera.setParameters(parameters); QrCodeReader reader = new QrCodeReader(); mCamera.setPreviewCallback(reader); }
El tamaño de imagen ajustado tiene que estar disponible porque está en la lista parameters.getSupportedPictureSizes()
.
Y este método en la clase QrCodeReader
que implementa PreviewCallback
:
private Result result; private MultiFormatReader reader = new MultiFormatReader(); private boolean init = false; public QrCodeReader(){ Hashtable<DecodeHintType, Object> hints = new Hashtable<DecodeHintType, Object>(); hints.put(DecodeHintType.TRY_HARDER, Boolean.TRUE); reader.setHints(hints); } @Override public void onPreviewFrame(byte[] data, Camera camera) { PlanarYUVLuminanceSource source = new PlanarYUVLuminanceSource(data, 1280, 720, 0, 0, 1280, 720, true); HybridBinarizer hybBin = new HybridBinarizer(source); BinaryBitmap bitmap = new BinaryBitmap(hybBin); try { result = reader.decodeWithState(bitmap); Log.d("Result", "Result found!"); } catch (NotFoundException e) { Log.d(TAG, "NotFoundException"); } finally { reader.reset(); } }
El Logcat sólo muestra NotFoundException
.
- Cómo codificar una cadena en un código QR usando zxing en Android?
- El fragmento del explorador de código de barras de Zxing se bloquea después de unos minutos
- Cómo decodificar datos utilizando Zxing C ++
- Agregar menú a ZXings barcodescanner, y apretar la vista de superficie
- Android / ZXing ya no funciona
- Escáner de código de barras ZXing en diseño personalizado en fragmento
- Zxing modo retrato de la cámara y el paisaje en Android
- Cómo integrar Zxing Barcode Scanner sin instalar la aplicación real zxing (no se puede resolver el símbolo: .android.CaptureActivity)?
NotFoundException
es normal. Si el marco no tiene un código de barras, ese es el resultado. Esto no significa que algo está equivocado per se. Continúe escaneando.