hi. i have been trying to record camera using MediaRecorder. i searched some sample source code. but they dose not work...
actually i succeeded recording audio, but i can't record video. is there someone who advice me? ---------------- source code ----------------------- package lbj.camera.test; import java.io.File; import java.io.IOException; import android.app.Activity; import android.content.Context; import android.hardware.Camera; import android.media.MediaRecorder; import android.os.Bundle; import android.os.Environment; import android.util.Log; import android.view.Menu; import android.view.MenuItem; import android.view.SurfaceHolder; import android.view.SurfaceView; public class CameraTest2 extends Activity { public MediaRecorder mrec = null; File videofile; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mPreview = new Preview(this); setContentView(mPreview); } private Preview mPreview; SurfaceView sv; SurfaceHolder holder; @Override public boolean onCreateOptionsMenu(Menu menu) { menu.add("Capture"); menu.add("Save"); return super.onCreateOptionsMenu(menu); } public boolean onOptionsItemSelected(MenuItem item) { if (item.getTitle().equals("Capture")) { try { mPreview.record(); } catch (Exception e) { e.printStackTrace(); Log.d("Has not finished here:", "Starting video"); } } else if (item.getTitle().equals("Save")) { mPreview.saveAndStop(); } return true; } } class Preview extends SurfaceView implements SurfaceHolder.Callback { SurfaceHolder mHolder; Camera mCamera; Context context; MediaRecorder recorder = null; public void record() throws Exception{ File audiofile = null; try { String mSdCardPath = Environment.getExternalStorageDirectory().getAbsolutePath(); audiofile = new File(mSdCardPath + File.separator + "test.3gp"); audiofile.createNewFile(); } catch (Exception e) { throw e; } recorder = new MediaRecorder(); recorder.setCamera(mCamera); recorder.setPreviewDisplay(mHolder.getSurface()); recorder.setVideoSource(MediaRecorder.VideoSource.CAMERA); recorder.setAudioSource(MediaRecorder.AudioSource.MIC); recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); recorder.setOutputFile(audiofile.getAbsolutePath()); recorder.setVideoSize(176, 144); recorder.setVideoFrameRate(15); recorder.setVideoEncoder(MediaRecorder.VideoEncoder.DEFAULT); recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); Log.d("Has Entered here:", "Starting video"); if (recorder != null) { try { recorder.prepare(); recorder.start(); } catch (Exception ex) { ex.printStackTrace(); } } } Preview(Context context) { super(context); mHolder = getHolder(); mHolder.addCallback(this); mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); } public void surfaceCreated(SurfaceHolder holder) { try { mCamera = Camera.open(); mCamera.setPreviewDisplay(holder); } catch (IOException e) { e.printStackTrace(); } } public void surfaceDestroyed(SurfaceHolder holder) { Log.d("Stopping preview", "in preview class"); mCamera.stopPreview(); mCamera = null; } public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) { Camera.Parameters parameters = mCamera.getParameters(); parameters.setPreviewSize(w, h); mCamera.setParameters(parameters); mCamera.startPreview(); } public void saveAndStop() { if (recorder != null) { try { recorder.stop(); recorder.reset(); recorder.release(); } catch (IllegalStateException e) { e.printStackTrace(); } } } } -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en