Как использовать камеру 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