Android Open Source - glvideoplayer-android Device Camera Plane






From Project

Back to project page glvideoplayer-android.

License

The source code is released under:

Apache License

If you think the Android project glvideoplayer-android listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package net.binzume.android.glvideoplayer;
//from   w  w  w  .  j a va 2s  .c  om
import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.nio.FloatBuffer;
import java.util.List;

import android.hardware.Camera;
import android.opengl.GLES20;
import android.util.Log;

public class DeviceCameraPlane extends OESTexture {
  private FloatBuffer vertex;
  public Camera camera;
  
  public DeviceCameraPlane() {
    try {
      camera = Camera.open();
      textureUpdated = false;
      surfaceTexture = createSurfaceTexture();
      camera.setPreviewTexture(surfaceTexture);
      // camera.setPreviewDisplay(null);
    } catch (RuntimeException e) {
      e.printStackTrace();
    } catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
    
    ByteBuffer bb = ByteBuffer.allocateDirect(4 * 4 * 4);
    bb.order(ByteOrder.nativeOrder());
    vertex = bb.asFloatBuffer();
    
    vertex.position(0);

    float bottom = -0.9f;
    float left = -0.9f;
    float sz = 1.8f;
    
    vertex.put(left);
    vertex.put(bottom);
    vertex.put(0);
    vertex.put(1);

    vertex.put(left);
    vertex.put(bottom + sz);
    vertex.put(0);
    vertex.put(0);

    vertex.put(left + sz);
    vertex.put(bottom + sz);
    vertex.put(1);
    vertex.put(0);

    vertex.put(left + sz);
    vertex.put(bottom);
    vertex.put(1);
    vertex.put(1);

    vertex.position(0);

  }
  
  
  public void setPreviewSize(Camera.Parameters params, int width, int height) {
    List<Camera.Size> supported = params.getSupportedPreviewSizes();
    if (supported != null) {
      for (Camera.Size size : supported) {
        if (size.width <= width && size.height <= height) {
          params.setPreviewSize(size.width, size.height);
          Log.d("CameraView","PreviewSIze: "+size.width + "x" + size.height);
          camera.setParameters(params);
          break;
        }
      }
    }
  }
  
  
  public void bindBuffer(GLShaderProgram glsl) {

    GLES20.glEnableVertexAttribArray(glsl.positionHandle);
    vertex.position(0);
    GLES20.glVertexAttribPointer(glsl.positionHandle, 4, GLES20.GL_FLOAT, false, 0, vertex);
//    checkGlError("drawGLES20 VertexAttribPointer bg vertex");

    GLES20.glBindTexture(GL_TEXTURE_EXTERNAL_OES, textureName);
    
    // Log.d("","bindBuffer" + cameraTextureName);
  
  }
  
  public void release() {
    if (camera != null) {
      camera.setPreviewCallback(null);
      camera.stopPreview();
      camera.release();
      camera = null;
    }
    
    super.release();
  }
}




Java Source Code List

net.binzume.android.glvideoplayer.DeviceCameraPlane.java
net.binzume.android.glvideoplayer.FBOTexture.java
net.binzume.android.glvideoplayer.GLShaderProgram.java
net.binzume.android.glvideoplayer.GLVideoRenderer.java
net.binzume.android.glvideoplayer.MainActivity.java
net.binzume.android.glvideoplayer.MediaPlayerPlane.java
net.binzume.android.glvideoplayer.NicoCommentPlane.java
net.binzume.android.glvideoplayer.OESTexture.java
net.binzume.android.glvideoplayer.TextureFactory.java
net.binzume.android.glvideoplayer.Texture.java
net.binzume.android.glvideoplayer.VideoSurfaceView.java
net.binzume.android.nicoplayer.player.CommentController.java
net.binzume.android.nicoplayer.player.CommentLoadTask.java
net.binzume.android.nicoplayer.player.CommentSlot.java
net.binzume.android.nicovideo.ChannelCategoryInfo.java
net.binzume.android.nicovideo.ChannelInfo.java
net.binzume.android.nicovideo.Comment.java
net.binzume.android.nicovideo.MyList.java
net.binzume.android.nicovideo.NicoSession.java
net.binzume.android.nicovideo.ThreadInfo.java
net.binzume.android.nicovideo.VideoFileInfo.java
net.binzume.android.nicovideo.VideoInfo.java
net.binzume.android.nicovideo.util.HtmlUtil.java
net.binzume.android.nicovideo.util.HttpClient.java
net.binzume.android.nicovideo.webapi.ChannelAPI.java
net.binzume.android.nicovideo.webapi.CommentAPI.java
net.binzume.android.nicovideo.webapi.Constants.java
net.binzume.android.nicovideo.webapi.FriendListAPI.java
net.binzume.android.nicovideo.webapi.LoginAPI.java
net.binzume.android.nicovideo.webapi.MyListAPI.java
net.binzume.android.nicovideo.webapi.NotLoginException.java
net.binzume.android.nicovideo.webapi.PaymentRequiredException.java
net.binzume.android.nicovideo.webapi.VideoAPI.java
net.binzume.android.nicovideo.webapi.VideoRssParser.java
net.binzume.android.nicovideo.webapi.VideoSearchAPI.java
net.binzume.android.nicovideo.webapi.WatchItemAPI.java
net.binzume.android.nicovideo.webapi.WebApiException.java