Я хочу использовать OpenGL ES для предварительного просмотра камеры Android и сохранить захваченное изображение.
Мне нравится использовать OpenGL ES в Android-камеру, чтобы придать определенную силу камере Android. Поэтому, пожалуйста, скажите мне, как это сделать?
Вам необходимо реализовать интерфейс android.hardware.Camera.PreviewCallback
и переопределить метод
public synchronized void onPreviewFrame(byte[] data, Camera camera) { myOpenGLObject.receiveFrames(data); }
Для чтения кадров, полученных от обратного вызова камеры. Я предлагаю вам ознакомиться с источником andar http://code.google.com/p/andar/ . Особенно класс CameraPreviewHandler.java .
Надеюсь, это ответит на ваш вопрос.
Более быстрый способ состоит в том, чтобы избежать обратного вызова onPreviewFrame
и использовать SurfaceTexture
в качестве текстуры, на которую камера отображает предварительный просмотр. Взгляните на пример внутри grafika, который более или менее делает то же самое: https://github.com/google/grafika/blob/master/src/com/android/grafika/CameraCaptureActivity.java