zxing не обнаруживает штрих-код. Возможная проблема с шириной / высотой? - PullRequest
1 голос
/ 07 мая 2020

Я не могу заставить свой QR-сканер zxing обнаруживать QR-коды. Я протестировал следующее на эмуляторе и Huawei P20.

Я предположил, что мой QR-код в порядке, поскольку я установил приложение сканера штрих-кода zxing на свой телефон, и оно отлично его обнаруживает.

У меня программа предварительного просмотра камеры работает нормально, и обратный вызов называется нормально. Просто обнаружение вроде ничего не обнаруживает. Я пробовал использовать размер кадра макета, а также размер предварительного просмотра, вы можете увидеть их значения в комментариях к коду. Интересно, не правильно ли я получаю ширину / высоту.

Из моей деятельности ...

override fun onPreviewFrame(data: ByteArray, camera: Camera) {

    val length = data.size // 1382400
    val previewFormat = camera.parameters.previewFormat // 17 or 0x11 = NV21

    try {
// Tried this initially
//            val size = camera.parameters.previewSize
//            val width = size.width // 320
//            val height = size.height // 240

        val previewFrame : FrameLayout = findViewById(R.id.camera_preview)
        val width = previewFrame.width // 1100
        val height = previewFrame.height // 825

        val source = PlanarYUVLuminanceSource(data, width, height, 0, 0, width, height, false)
        val bitmap = BinaryBitmap(HybridBinarizer(source))
        val result = mQrReader.decodeWithState(bitmap)

// Never gets here

        qrList.add(result)
        adapter?.notifyDataSetChanged()
    } catch (nfe: NotFoundException) {
            // continue
    } catch (e: Exception) {
        Toast.makeText(this, "Error: ${e.message}", Toast.LENGTH_SHORT).show()
    } finally {
        mQrReader.reset()
        camera.setOneShotPreviewCallback(this)
    }
}

Из моего макета ...

    <FrameLayout
            android:id="@+id/camera_preview"
            android:layout_width="400dp"
            android:layout_height="300dp" />

Gradle ...

implementation 'com.google.zxing:core:3.3.3'

В другом сообщении SO Шон Оуэн упоминает, что формат не менялся. Я быстро go в любом случае в отчаянии ...

            mCamera!!.parameters.previewFormat = YUV_420_888

, но это вызывает исключение Invalid pixel_format=35 при открытии камеры.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...