Intereting Posts
Play Store, имеющий новую версию приложения, но не показывающий обновление Google Maps V2 показывает пустой экран на Android 2.2 Как использовать скольжение для загрузки изображения в растровое изображение? Android gradle build и библиотека поддержки Try catch всегда возвращает null Обратный вызов автофокусировки камеры не происходит Выбранный элемент в пользовательском listview с контекстной панелью действий Grade Plugin 3-alpha1 outputFile вызывает ошибку Как получить рабочий динамический текст ToggleButton под андроид? Команда adb не найдена в среде linux Использование контекстной панели действий с фрагментами Автоматически принимать все лицензии SDK Предназначение для редактирования текстового файла с установленным редактором файлов (если есть) ListView с первым видимым элементом, имеющим разный макет Com.crashlytics.android.CrashlyticsMissingDependencyException во время gradle 'testDebug' в проекте студии Android

Как восстановить предварительный просмотр камеры из сна?

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

Я внедрил предварительный просмотр камеры, как представлено в демонстрационных примерах api, но кажется, что пример демонстрации api работает только благодаря чистой удаче. В этом примере ориентация экрана принудительно изменяется, что означает, что при каждом переходе в режим ожидания телефон переходит в режим смены конфигурации, так как экран блокировки находится в портретном режиме. Если портретный режим используется в приложении предварительного просмотра камеры (например, в шахте), поверхности ошибок.

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

Есть ли способ заставить воссоздать поверхностное видение, а не просто воссоздать всю деятельность?

Solutions Collecting From Web of "Как восстановить предварительный просмотр камеры из сна?"

Одно из решений, возможно, превращает поверхность в невидимое и видимое снова в onResume (), это делает разрушение и воссоздание поверхности.

У меня была такая же проблема, и вот почему:

Метод onPause не перерабатывает класс CameraPreview, который я создал (который реализует обратные вызовы SurfaceView). Вместо того, чтобы пытаться повторно создать экземпляр всего этого объекта, я просто обновил ссылку на объект камеры, которую я передавал, чтобы он был либо

null 

или

 cameraPreview.setCamera(mCamera); 

Я вызвал метод getCameraInstance для инициализации камеры, а затем передал ее в объект preivew.

Теперь проблема здесь:

 private void initializeCameraView(){ RelativeLayout preview = (RelativeLayout)rootView.findViewById(R.id.camera_preview); preview.addView(cameraPreview); } 

In onResume, я назвал этот метод для инициализации объекта cameraPreview. Тем не менее, это зависало, потому что я пытался добавить еще один CameraPreview в представление предварительного просмотра . Это было мое исправление, простое и простое. Если он уже существует, удалите его, затем верните его обратно. Надеюсь, это поможет!

 private void initializeCameraView(){ RelativeLayout preview = (RelativeLayout)rootView.findViewById(R.id.camera_preview); //removes the problem with the camera freezing onResume if(cameraPreview != null) { preview.removeView(cameraPreview); } preview.addView(cameraPreview); }