Я работаю над обнаружением текста в режиме реального времени с помощью 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)
Помогите мне решить эту проблему!