Not logged in.  Login/Logout/Register | List snippets | | Create snippet | Upload image | Upload data

81
LINES

< > BotCompany Repo | #1000448 // Android: Open camera v2 (developing)

JavaX source code (Android) [tags: use-pretranspiled] - run with: the app

Libraryless. Click here for Pure Java version (585L/5K/17K).

!7

import android.app.Activity;
import android.widget.*;
import android.graphics.*;
import android.hardware.Camera;
import android.view.*;

p {
  print "Listing cameras..."
  
  runOnUiThread(runnable {
    final int n = Camera.getNumberOfCameras();
    print("Cameras: " + n);

    //final Camera cam = Camera.open(0/*n-1*/);
    
    TextureView mTextureView = new TextureView(androidContext());
    
    mTextureView.setSurfaceTextureListener(new TextureView.SurfaceTextureListener() {
      Camera mCamera;
      
      public void onSurfaceTextureAvailable(SurfaceTexture surface, int width, int height) {
          mCamera = Camera.open(n-1);

          try {
              mCamera.setPreviewTexture(surface);
              mCamera.startPreview();
          } catch (IOException ioe) {
              // Something bad happened
          }
      }

      public void onSurfaceTextureSizeChanged(SurfaceTexture surface, int width, int height) {
          // Ignored, Camera does all the work for us
      }

      public boolean onSurfaceTextureDestroyed(SurfaceTexture surface) {
          mCamera.stopPreview();
          mCamera.release();
          return true;
      }

      public void onSurfaceTextureUpdated(SurfaceTexture surface) {
          // Invoked every time there's a new Camera preview frame
      }        
    });
    
    androidShow(mTextureView);
  });
}

static class CamCallback implements SurfaceHolder.Callback {
  public void surfaceChanged (SurfaceHolder holder, int format, int width, int height) {
    print "surfaceChanged"
  }
  public void surfaceCreated (SurfaceHolder holder) {
    print "surfaceCreated"
  }
  public void surfaceDestroyed (SurfaceHolder holder) {
    print "surfaceDestroyed"
  }
}

static class ShutterCallback implements Camera.ShutterCallback {
  public void onShutter() {
    print "Shutter!"
  }
}

static class JpegCallback implements Camera.PictureCallback {
  public void onPictureTaken (byte[] data, Camera cam) {
    TextView tv = new TextView(androidContext());
    tv.setText("Picture data: " + data.length);
    androidShow(tv);
    
    System.out.println("Picture data: " + data.length);
    cam.release();
    print "Camera released."
  }
}

Author comment

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: 664 / 605
Version history: 3 change(s)
Referenced in: [show references]