1
1
package in .omerjerk .processing .video .android ;
2
2
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 ;
3
9
import processing .core .PConstants ;
4
10
import processing .core .PImage ;
5
11
12
+ @ SuppressWarnings ("deprecation" )
6
13
public class Capture extends PImage implements PConstants {
7
14
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
+ }
8
51
}
0 commit comments