Skip to content

Commit e1962af

Browse files
committed
Return list of cameras
Signed-off-by: Umair Khan <[email protected]>
1 parent 9d76d3d commit e1962af

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,51 @@
11
package in.omerjerk.processing.video.android;
22

3+
import java.util.ArrayList;
4+
5+
import android.content.Context;
6+
import android.content.pm.PackageManager;
7+
import android.hardware.Camera;
8+
import processing.core.PApplet;
39
import processing.core.PConstants;
410
import processing.core.PImage;
511

12+
@SuppressWarnings("deprecation")
613
public class Capture extends PImage implements PConstants {
714

15+
private static Context context;
16+
17+
private static ArrayList<String> camerasList;
18+
19+
private static final String KEY_FRONT_CAMERA = "front-camera-%d";
20+
private static final String KEY_BACK_CAMERA = "back-camera-%d";
21+
22+
public static String[] list() {
23+
ensureContext();
24+
if (context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA)) {
25+
int nOfCameras = Camera.getNumberOfCameras();
26+
for (int i = 0; i < nOfCameras; ++i) {
27+
Camera.CameraInfo cameraInfo = new Camera.CameraInfo();
28+
Camera.getCameraInfo(i, cameraInfo);
29+
if (cameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) {
30+
camerasList.add(String.format(KEY_FRONT_CAMERA, i));
31+
} else {
32+
//Back Camera
33+
camerasList.add(String.format(KEY_BACK_CAMERA, i));
34+
}
35+
}
36+
String[] array = new String[nOfCameras];
37+
camerasList.toArray(array);
38+
return array;
39+
}
40+
return null;
41+
}
42+
43+
private static void ensureContext() {
44+
if (context == null) {
45+
context = PApplet.getInstance();
46+
if (context == null) {
47+
throw new NullPointerException("null context");
48+
}
49+
}
50+
}
851
}

0 commit comments

Comments
 (0)