Camera API Распознавание текста на андроид Сфотографировать не удалось Только устройства Oreo и Pie - PullRequest
0 голосов
/ 13 апреля 2019

Я работаю над обнаружением текста в режиме реального времени с помощью firebase google vision api.

Проблема заключалась в том, что при запуске предварительного просмотра CameraSource выполнялся обратный вызов.Я получил сообщение об ошибке при фотографировании в Oreo и круговом устройстве.

Использую мою ссылку: https://medium.com/@prakash_pun/text-recognition-for-android-using-google-mobile-vision-a8ffabe3f5d6 Код для захвата изображения находится в java-файле фрагмента дорожки лица: -

    textRecognizer.setProcessor(new Detector.Processor<TextBlock>() {
                    @Override
                    public void release() {
                    }

                    /*Detect all the text from camera using TextBlock and the values into a stringBuilder
                    which will then be process in conversion*/
                    @Override
                    public void receiveDetections(Detector.Detections<TextBlock> detections) {
                        Handler handler = new Handler(Looper.getMainLooper());
                        handler.post(new Runnable() {
                            @Override
                            public void run() {
                                try {
                                    AudioManager audio = (AudioManager) getActivity().getSystemService(Context.AUDIO_SERVICE);
                                    currentVolume = audio.getStreamVolume(AudioManager.STREAM_SYSTEM);
                                    audio.setStreamVolume(AudioManager.STREAM_SYSTEM, 0, AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);
                                    if (cameraSource != null) {
                                        cameraSource.takePicture(null, new CameraSource.PictureCallback() {
                                            public void onPictureTaken(final byte[] bytes) {
                                                if (isVolumeChanged) {
                                                    audio.setStreamVolume(AudioManager.STREAM_SYSTEM, currentVolume, AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);
                                                }
                                                orientation = Exif.getOrientation(bytes);
                                                if (bytes != null) {
                                                    bitmap = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
                                                    Bitmap rotateBitmap = getRotation(bitmap);
                                                    croppedBmp = cropImage(rotateBitmap);
                                                }
                                            }
                                        });
                                    }
                                } catch (Exception e) {

                                    e.printStackTrace();
                                }
                            }
                        });

                        if (croppedBmp != null) {
                            Frame frame = new Frame.Builder().setBitmap(croppedBmp).build();
                            final SparseArray<TextBlock> items = textRecognizer.detect(frame); 
}

Ошибка: 15497-15497 / com.hagglelens W / System.err: java.lang.RuntimeException: ошибка takePicture 2019-04-13 16: 16: 39.469 15497-15497 / com.hagglelens W/System.err: at android.hardware.Camera.native_takePicture (собственный метод) 2019-04-13 16: 16: 39.469 15497-15497 / com.hagglelens W / System.err: at android.hardware.Camera.takePicture (камера).java: 1507) 2019-04-13 16: 16: 39.469 15497-15497 / com.hagglelens W / System.err: at com.google.android.gms.vision.CameraSource.takePicture (неизвестный источник: 60) 2019-04-13 16: 16: 39.470 15497-15497 / com.hagglelens W / System.err: at com.hagglelens.view.fragment.livecapture.LiveCaptureFragment $ 3 $ 1.run (LiveCaptureFragment.java:239) 2019-04-13 16: 16: 39.470 15497-15497 / com.hagglelens W / System.err:
at android.os.Handler.handleCallback (Handler.java:789) 2019-04-13 16:16:39.470 15497-15497 / com.hagglelens W / System.err: at android.os.Handler.dispatchMessage (Handler.java:98) 2019-04-13 16: 16: 39.470 15497-15497 / com.hagglelens W / System.ошибка: на android.os.Looper.loop (Looper.java:164) 2019-04-13 16: 16: 39.471 15497-15497 / com.hagglelens W / System.err: на android.app.ActivityThread.main (ActivityThread.java: 6673) 2019-04-13 16: 16: 39.471 15497-15497 / com.hagglelens W / System.err: at java.lang.reflect.Method.invoke (собственный метод) 2019-04-13 16:16: 39.471 15497-15497 / com.hagglelens W / System.err: at com.android.internal.os.Zygote $ MethodAndArgsCaller.run (Zygote.java:240) 2019-04-13 16: 16: 39.471 15497-15497 /com.hagglelens W / System.err:
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:769)

Помогите мне решить эту проблему!

...