Libraryless. Click here for Pure Java version (585L/5K/17K).
1 | !7 |
2 | |
3 | import android.app.Activity; |
4 | import android.widget.*; |
5 | import android.graphics.*; |
6 | import android.hardware.Camera; |
7 | import android.view.*; |
8 | |
9 | p { |
10 | print "Listing cameras..." |
11 | |
12 | runOnUiThread(runnable { |
13 | final int n = Camera.getNumberOfCameras(); |
14 | print("Cameras: " + n); |
15 | |
16 | //final Camera cam = Camera.open(0/*n-1*/); |
17 | |
18 | TextureView mTextureView = new TextureView(androidContext()); |
19 | |
20 | mTextureView.setSurfaceTextureListener(new TextureView.SurfaceTextureListener() { |
21 | Camera mCamera; |
22 | |
23 | public void onSurfaceTextureAvailable(SurfaceTexture surface, int width, int height) { |
24 | mCamera = Camera.open(n-1); |
25 | |
26 | try { |
27 | mCamera.setPreviewTexture(surface); |
28 | mCamera.startPreview(); |
29 | } catch (IOException ioe) { |
30 | // Something bad happened |
31 | } |
32 | } |
33 | |
34 | public void onSurfaceTextureSizeChanged(SurfaceTexture surface, int width, int height) { |
35 | // Ignored, Camera does all the work for us |
36 | } |
37 | |
38 | public boolean onSurfaceTextureDestroyed(SurfaceTexture surface) { |
39 | mCamera.stopPreview(); |
40 | mCamera.release(); |
41 | return true; |
42 | } |
43 | |
44 | public void onSurfaceTextureUpdated(SurfaceTexture surface) { |
45 | // Invoked every time there's a new Camera preview frame |
46 | } |
47 | }); |
48 | |
49 | androidShow(mTextureView); |
50 | }); |
51 | } |
52 | |
53 | static class CamCallback implements SurfaceHolder.Callback { |
54 | public void surfaceChanged (SurfaceHolder holder, int format, int width, int height) { |
55 | print "surfaceChanged" |
56 | } |
57 | public void surfaceCreated (SurfaceHolder holder) { |
58 | print "surfaceCreated" |
59 | } |
60 | public void surfaceDestroyed (SurfaceHolder holder) { |
61 | print "surfaceDestroyed" |
62 | } |
63 | } |
64 | |
65 | static class ShutterCallback implements Camera.ShutterCallback { |
66 | public void onShutter() { |
67 | print "Shutter!" |
68 | } |
69 | } |
70 | |
71 | static class JpegCallback implements Camera.PictureCallback { |
72 | public void onPictureTaken (byte[] data, Camera cam) { |
73 | TextView tv = new TextView(androidContext()); |
74 | tv.setText("Picture data: " + data.length); |
75 | androidShow(tv); |
76 | |
77 | System.out.println("Picture data: " + data.length); |
78 | cam.release(); |
79 | print "Camera released." |
80 | } |
81 | } |
Began life as a copy of #1000447
download show line numbers debug dex old transpilations
Travelled to 14 computer(s): aoiabmzegqzx, bhatertpkbcr, cbybwowwnfue, cfunsshuasjs, gwrvuhgaqvyk, ishqpsrjomds, lpdgvwnxivlt, mqqgnosmbjvj, nbgitpuheiab, pyentgdyhuwx, pzhvpgtvlbxg, tslmcundralx, tvejysmllsmz, vouqrxazstgt
No comments. add comment
Snippet ID: | #1000448 |
Snippet name: | Android: Open camera v2 (developing) |
Eternal ID of this version: | #1000448/4 |
Text MD5: | d2686cd856e49a36e9e44efa494cef1f |
Transpilation MD5: | 3007b8542ae9b45a749c93927c61cd68 |
Author: | stefan |
Category: | javax android |
Type: | JavaX source code (Android) |
Public (visible to everyone): | Yes |
Archived (hidden from active list): | No |
Created/modified: | 2017-02-19 12:20:59 |
Source code size: | 2294 bytes / 81 lines |
Pitched / IR pitched: | No / No |
Views / Downloads: | 665 / 607 |
Version history: | 3 change(s) |
Referenced in: | [show references] |