Skip to content

Commit 78da4a6

Browse files
committed
Preview working
Signed-off-by: Umair Khan <[email protected]>
1 parent c22ad69 commit 78da4a6

File tree

1 file changed

+29
-6
lines changed

1 file changed

+29
-6
lines changed

src/in/omerjerk/processing/video/android/Capture.java

Lines changed: 29 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,11 @@
55

66
import android.content.Context;
77
import android.hardware.Camera;
8+
import android.view.Gravity;
89
import android.util.Log;
910
import android.view.SurfaceHolder;
1011
import android.view.SurfaceView;
12+
import android.view.WindowManager;
1113
import processing.core.PApplet;
1214
import processing.core.PConstants;
1315
import processing.core.PImage;
@@ -18,7 +20,7 @@ public class Capture extends PImage implements PConstants {
1820
private static final boolean DEBUG = true;
1921
public static void log(String log) {if (DEBUG) System.out.println(log);}
2022

21-
private Context context;
23+
private PApplet context;
2224

2325
private Camera mCamera;
2426

@@ -40,15 +42,36 @@ public void setCamera(String camera) {
4042
selectedCamera = camerasList.indexOf(camera);
4143
}
4244
log("Selected camera = " + selectedCamera);
43-
try {
45+
createPreviewWindow();
46+
}
47+
48+
private void createPreviewWindow() {
49+
final WindowManager.LayoutParams params = new WindowManager.LayoutParams(
50+
WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY,
51+
WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE |
52+
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE |
53+
WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL |
54+
WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH);
55+
56+
params.gravity = Gravity.TOP | Gravity.LEFT;
57+
params.height = 1;
58+
params.width = 1;
59+
60+
try {
4461
mCamera = Camera.open(selectedCamera);
45-
CameraPreview mPreview = new CameraPreview(context, mCamera);
46-
mCamera.setPreviewCallback(previewCallback);
62+
final WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
63+
context.runOnUiThread(new Runnable() {
64+
@Override
65+
public void run() {
66+
CameraPreview mPreview = new CameraPreview(context, mCamera);
67+
windowManager.addView(mPreview, params);
68+
mCamera.setPreviewCallback(previewCallback);
69+
}
70+
});
4771
} catch (Exception e) {
4872
System.err.println("Camera not avaialble to use.");
4973
e.printStackTrace();
5074
}
51-
5275
}
5376

5477
public String[] list() {
@@ -74,7 +97,7 @@ public String[] list() {
7497
private Camera.PreviewCallback previewCallback = new Camera.PreviewCallback() {
7598

7699
@Override
77-
public void onPreviewFrame(byte[] arg0, Camera arg1) {
100+
public void onPreviewFrame(byte[] frame, Camera camera) {
78101
log("Received Camera frame");
79102
}
80103
};

0 commit comments

Comments
 (0)