Как использовать камеру Android с OpenGL ES для работы?

Я хочу использовать OpenGL ES для предварительного просмотра камеры Android и сохранить захваченное изображение.

Мне нравится использовать OpenGL ES в Android-камеру, чтобы придать определенную силу камере Android. Поэтому, пожалуйста, расскажите мне, как это сделать?

Ответы

Ответ 1

вам нужно реализовать интерфейс android.hardware.Camera.PreviewCallback и переопределить метод

public synchronized void onPreviewFrame(byte[] data, Camera camera) {
                        myOpenGLObject.receiveFrames(data);
        }

для чтения кадров, полученных от обратного вызова камеры. Я предлагаю вам заглянуть в источник аннара http://code.google.com/p/andar/. Особенно класс CameraPreviewHandler.java.

Надеюсь, это ответит на ваш вопрос.

Ответ 2

Более быстрый способ состоит в том, чтобы избежать обратного вызова onPreviewFrame и использовать SurfaceTexture как текстуру, на которую камера отображает предварительный просмотр. Взгляните на пример внутри grafika, который более или менее делает то же самое: https://github.com/google/grafika/blob/master/src/com/android/grafika/CameraCaptureActivity.java