Welcome, guest! Login / Register - Why register?
Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)

Paste

Pasted as Java by who ( 15 years ago )
public class CamcorderPreview extends SurfaceView implements SurfaceHolder.Callback, MediaRecorder.OnErrorListener, MediaRecorder.OnInfoListener {
  MediaRecorder recorder;
  SurfaceHolder holder;
  FileOutputStream fos;
  private static final int FRAME_RATE = 15;
  private static final int CIF_WIDTH = 320;
  private static final int CIF_HEIGHT = 240;
  private boolean initialized;
  public CamcorderPreview(Context context, AttributeSet attrs) {
    super(context, attrs);
    holder = getHolder();
    holder.addCallback(this);
    holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
  }
  public void surfaceCreated(SurfaceHolder holder) {
    initializeRecording();
  }
  public void initializeRecording() {
    if (!initialized) {
      recorder = new MediaRecorder();
      recorder.setOnErrorListener(this);
      recorder.setOnInfoListener(this);
      recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
      recorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
      recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
      recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
      recorder.setVideoEncoder(MediaRecorder.VideoEncoder.H263);
      String path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/data/ls.3gp";
      Log.i("ls", "Video file to use: " + path);
      final File file = new File(path);
      File directory = file.getParentFile();
      if (!directory.exists() && !directory.mkdirs()) {
        try {
          throw new IOException("Path to file could not be created. " + directory.getAbsolutePath());
        } catch (IOException e) {
          Log.e("ls", "Directory could not be created. " + e.toString());
        }
      }
      if (file.exists()) {
        file.delete();
      }
      if (recorder != null) {
        try {
          file.createNewFile();
          fos = new FileOutputStream(path);
          recorder.setOutputFile(fos.getFD());
          recorder.setVideoSize(CIF_WIDTH, CIF_HEIGHT);
          recorder.setVideoFrameRate(FRAME_RATE);
          recorder.setPreviewDisplay(holder.getSurface());
          recorder.prepare();
        } catch (IllegalStateException e) {
          Log.e("ls", e.toString(), e);
        } catch (IOException e) {
          Log.e("ls", e.toString(), e);
        }
      }
      initialized = true;
    }
  }
  public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
  }
  public void surfaceDestroyed(SurfaceHolder holder) {
  }
  public void onError(MediaRecorder mediaRecorder, int what, int extra) {
    Log.e("ls", "Error received in media recorder: " + what + ", " + extra);
  }
  public void onInfo(MediaRecorder mediaRecorder, int what, int extra) {
    Log.e("ls", "Info received from media recorder: " + what + ", " + extra);
  }
  public void releaseRecorder() throws IOException {
    if (recorder != null) {
      recorder.reset();
      recorder.release();
    }
    if (fos != null) {
      fos.close();
    }
    initialized = false;
  }
  public void startRecording() {
    recorder.start();
  }
  public void stopRecording() {
    recorder.stop();
  }
}

 

Revise this Paste

Your Name: Code Language: