Add CameraView and set fullscreen for preview
[rtmpclient.git] / app / src / main / java / ai / suanzi / rtmpclient / CameraView.java
diff --git a/app/src/main/java/ai/suanzi/rtmpclient/CameraView.java b/app/src/main/java/ai/suanzi/rtmpclient/CameraView.java
new file mode 100644 (file)
index 0000000..5ddcb5e
--- /dev/null
@@ -0,0 +1,47 @@
+package ai.suanzi.rtmpclient;
+
+import android.content.Context;
+import android.view.SurfaceHolder;
+import android.view.SurfaceView;
+
+import org.apache.log4j.Logger;
+
+public class CameraView extends SurfaceView implements SurfaceHolder.Callback {
+
+    private static Logger gLogger = Logger.getLogger("CameraView");
+    public static int SCREEN_WIDTH;
+    public static int SCREEN_HEIGHT;
+
+    private Context mContext;
+    private SurfaceHolder mHolder;
+    private Callback mCallback;
+
+    public CameraView (Context context, Callback cb) {
+        super(context);
+        this.mContext = context;
+        mHolder = this.getHolder();
+        mHolder.addCallback(this);
+        this.mCallback = cb;
+    }
+
+    // SurfaceHolder.Callback implementation
+    @Override
+    public void surfaceCreated(final SurfaceHolder holder){
+        gLogger.error("SurfacedCreated");
+    }
+
+    @Override
+    public void surfaceChanged(SurfaceHolder holder, int format, int widht, int height){
+        gLogger.error("surfaceChanged");
+        mHolder = holder;
+        mCallback.onSurfaceChanged(holder, format, widht, height);
+    }
+
+    @Override
+    public void surfaceDestroyed(SurfaceHolder holder){ gLogger.debug("surfaceDestroyed");
+    }
+
+    public interface Callback {
+        void onSurfaceChanged(SurfaceHolder holder, int format, int width, int height);
+    }
+}