Что означает SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS?

Я пытаюсь отобразить отфильтрованный просмотр камеры, используя обратный вызов onPreviewFrame ().

Проблема в том, что когда я удаляю эту строку: mHolder.setType (SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);

Чтобы скрыть предварительный просмотр, приложение выйдет из строя. Журнал читает: 08-19 15: 57: 51.042: ERROR / CameraService (59): registerBuffers не удалось со статусом -38

Что это значит? Является ли это документировано где угодно?

Я использую CameraPreview из SDK APIDemos: http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/CameraPreview.html

Solutions Collecting From Web of "Что означает SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS?"

SURFACE_TYPE_PUSH_BUFFERS генерирует несколько буферов для SurfaceView. Компоненты блокируют (заполняют данными) и нажимают (отображают данные) эти буферы в глубину кода ОС. В частности, OpenMax (интерфейс аппаратного устройства камеры) использует «графические буферы» = «push buffers» для заполнения данных и отображения данных. Чтобы быть конкретным, аппаратное обеспечение камеры может напрямую заполнить push-буфер, и графическое оборудование может отображать непосредственно буфер push (они используют эти буферы). Вывод: ОС заставляет вас создавать SurfaceView с буферами push. Затем он может использовать буферы для устройства камеры.

В руководстве Google «Камеры» вы можете найти краткое упоминание об этом. Согласно руководству SURFACE_TYPE_PUSH_BUFFERS – устаревший параметр, необходимый для устройств до 3.0.

Посмотрите в примере кода в разделе «Создание класса предварительного просмотра», в нижней части конструктора:

 // deprecated setting, but required on Android versions prior to 3.0 mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); 

Это хорошая идея, чтобы внимательно прочитать руководство камеры, если вы этого еще не сделали, он содержит некоторые важные вещи, которых нет в документации API классов камеры.

Что это значит?

Это означает, что вы неправильно настроили SurfaceView через SurfaceHolder .

Является ли это документировано где угодно?

Что это"? Вот документация для SurfaceView , SurfaceHolder , SURFACE_TYPE_PUSH_BUFFERS и Camera .

Если ваш реальный вопрос: «Где документировано, что Camera требует SURFACE_TYPE_PUSH_BUFFERS », я подозреваю, что это недокументировано. Вы используете SURFACE_TYPE_PUSH_BUFFERS для предварительного просмотра камеры и воспроизведения видео и, возможно, в других ситуациях.