diff options
| author | Comment <tim@gray.(none)> | 2013-09-09 23:41:11 +0100 |
|---|---|---|
| committer | Comment <tim@gray.(none)> | 2013-09-09 23:41:11 +0100 |
| commit | 2cb2cb16fe9165d70260a7a5aa8f0fd7f09d14e9 (patch) | |
| tree | 99876a195cb2db81e797971c823fc03e9a0562b0 /src/com/example/rotorm | |
| parent | a2e3dedbe4e09c4299143110bf938956c74ffe6c (diff) | |
adding recording
Diffstat (limited to 'src/com/example/rotorm')
| -rw-r--r-- | src/com/example/rotorm/CameraActivity.java | 60 |
1 files changed, 57 insertions, 3 deletions
diff --git a/src/com/example/rotorm/CameraActivity.java b/src/com/example/rotorm/CameraActivity.java index 6b35995..4018e47 100644 --- a/src/com/example/rotorm/CameraActivity.java +++ b/src/com/example/rotorm/CameraActivity.java @@ -10,6 +10,7 @@ import android.hardware.Camera; import android.hardware.Camera.AutoFocusCallback; import android.hardware.Camera.PictureCallback; import android.hardware.Camera.ShutterCallback; +import android.media.MediaRecorder; import android.os.Bundle; import android.util.Log; import android.view.SurfaceView; @@ -24,6 +25,7 @@ import android.widget.FrameLayout; //why is it so hard to put an eclipse project into git +//http://developer.android.com/guide/topics/media/camera.html public class CameraActivity extends Activity { public static final String TAG = "rotorM"; @@ -33,6 +35,8 @@ public class CameraActivity extends Activity { String fileName; Activity act; Context ctx; + boolean isRecording; + MediaRecorder mMediaRecorder; @Override public void onCreate(Bundle savedInstanceState) { @@ -54,7 +58,32 @@ public class CameraActivity extends Activity { buttonClick.setOnClickListener(new OnClickListener() { public void onClick(View v) { // preview.camera.takePicture(shutterCallback, rawCallback, jpegCallback); - camera.takePicture(shutterCallback, rawCallback, jpegCallback); + //camera.takePicture(shutterCallback, rawCallback, jpegCallback); + if (isRecording) { + // stop recording and release camera + mMediaRecorder.stop(); // stop the recording + releaseMediaRecorder(); // release the MediaRecorder object + camera.lock(); // take camera access back from MediaRecorder + + // inform the user that recording has stopped + setCaptureButtonText("Capture"); + isRecording = false; + } else { + // initialize video camera + if (prepareVideoRecorder()) { + // Camera is available and unlocked, MediaRecorder is prepared, + // now you can start recording + mMediaRecorder.start(); + + // inform the user that recording has started + setCaptureButtonText("Stop"); + isRecording = true; + } else { + // prepare didn't work, release the camera + releaseMediaRecorder(); + // inform user + } + } } }); @@ -80,7 +109,7 @@ public class CameraActivity extends Activity { camera.startPreview(); preview.setCamera(camera); } - +/* @Override protected void onPause() { if(camera != null) { @@ -91,12 +120,36 @@ public class CameraActivity extends Activity { } super.onPause(); } + */ + + @Override + protected void onPause() { + super.onPause(); + releaseMediaRecorder(); // if you are using MediaRecorder, release it first + releaseCamera(); // release the camera immediately on pause event + } + + private void releaseMediaRecorder(){ + if (mMediaRecorder != null) { + mMediaRecorder.reset(); // clear recorder configuration + mMediaRecorder.release(); // release the recorder object + mMediaRecorder = null; + camera.lock(); // lock camera for later use + } + } + + private void releaseCamera(){ + if (camera != null){ + camera.release(); // release the camera for other applications + camera = null; + } + } private void resetCam() { camera.startPreview(); preview.setCamera(camera); } - +/* ShutterCallback shutterCallback = new ShutterCallback() { public void onShutter() { // Log.d(TAG, "onShutter'd"); @@ -131,4 +184,5 @@ public class CameraActivity extends Activity { Log.d(TAG, "onPictureTaken - jpeg"); } }; + */ } |
