diff options
Diffstat (limited to 'src/com/example/rotorm/MainActivity.java')
| -rw-r--r-- | src/com/example/rotorm/MainActivity.java | 316 |
1 files changed, 0 insertions, 316 deletions
diff --git a/src/com/example/rotorm/MainActivity.java b/src/com/example/rotorm/MainActivity.java deleted file mode 100644 index 9ed025f..0000000 --- a/src/com/example/rotorm/MainActivity.java +++ /dev/null @@ -1,316 +0,0 @@ -package com.example.rotorm; - - -import java.io.File; -import java.io.IOException; -import java.util.Date; -import java.util.List; - -import android.hardware.Camera; -import android.hardware.Camera.Parameters; -import android.media.MediaPlayer; -import android.media.MediaRecorder; -import android.net.Uri; -import android.os.Bundle; -import android.os.Environment; -import android.app.Activity; -import android.content.Intent; -import android.util.Log; -import android.view.Menu; -import android.view.MenuItem; -import android.view.SurfaceHolder; -import android.view.SurfaceView; -import android.view.SurfaceHolder.Callback; -import android.widget.Toast; - -//why is it so hard to put an eclipse project into git - -public class MainActivity extends Activity implements Callback { - - @Override - protected void onDestroy() { - stopRecording(); - super.onDestroy(); - } - - private SurfaceHolder surfaceHolder; - private SurfaceView surfaceView; - public MediaRecorder mrec = new MediaRecorder(); - private Camera mCamera; - private Uri uriSound; - MediaPlayer mp; - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_main); - - uriSound=Uri.parse(""); - - Intent intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Audio.Media.EXTERNAL_CONTENT_URI); - startActivityForResult(intent, 10); - } - - @Override - public boolean onCreateOptionsMenu(Menu menu) { - menu.add(0, 0, 0, "Start"); - //menu.add(0, 0, 0, "Pick audio track"); - return super.onCreateOptionsMenu(menu); - // Inflate the menu; this adds items to the action bar if it is present. - //getMenuInflater().inflate(R.menu.main, menu); - //return true; - } - - @Override - public boolean onOptionsItemSelected(MenuItem item) - { - if(item.getTitle().equals("Start")) - { - try { - - startRecording(); - item.setTitle("Stop"); - - } catch (Exception e) { - - String message = e.getMessage(); - Log.i(null, "Problem " + message); - mrec.release(); - } - - } - else if(item.getTitle().equals("Stop")) - { - mrec.stop(); - mrec.release(); - mrec = null; - item.setTitle("Start"); - mp.stop(); - } - else if(item.getTitle().equals("Pick audio track")) - { - Intent intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Audio.Media.EXTERNAL_CONTENT_URI); - startActivityForResult(intent, 10); - } - - return super.onOptionsItemSelected(item); - } - - protected void startPreview() throws IOException { - - //http://stackoverflow.com/questions/12098298/android-camera-app-passed-null-surface - //http://developer.android.com/training/camera/cameradirect.html - - if (mCamera!=null){ - Log.e("Rotor", "Nulling camera"); - mCamera.stopPreview(); - mCamera.setPreviewCallback(null); - mCamera.release(); - mCamera=null; - } - - if(mCamera == null){ - mCamera = Camera.open(); - Log.e("Rotor", "Setting up camera"); - - /* - Camera.Parameters parameters = mCamera.getParameters(); - //get a list of supported preview sizes and assign one - List<Camera.Size> previewSizes = parameters.getSupportedPreviewSizes(); - Camera.Size previewSize = previewSizes.get(0); - parameters.setPreviewSize(previewSize.width, previewSize.height); - //Set Frame rate - parameters.setPreviewFrameRate(25); - //Set Scene - List<String> modes = parameters.getSupportedSceneModes(); - parameters.setSceneMode(modes.get(0)); - //Set focus mode - List<String> focus = parameters.getSupportedFocusModes(); - parameters.setFocusMode(focus.get(0)); - - - */ - - - - - - Camera.Parameters parameters = mCamera.getParameters(); - parameters.setPreviewSize(1280,720); - parameters.setPreviewFrameRate(25); - parameters.setSceneMode(Camera.Parameters.SCENE_MODE_SPORTS); - parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO); - parameters.setColorEffect(Camera.Parameters.EFFECT_NONE); - mCamera.setParameters(parameters); - - //Apply parameters to camera object - mCamera.setParameters(parameters); - Log.e("Rotor", "Camera configured"); - } - - - if(mCamera==null) mCamera = Camera.open(); - - setContentView(R.layout.main); - - surfaceView = (SurfaceView) findViewById(R.id.surface_camera); - - surfaceHolder = surfaceView.getHolder(); - surfaceHolder.addCallback(this); - surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); - - mCamera.lock(); - mCamera.unlock(); - - ////crashes on nexus 10 - //09-07 15:36:21.850: E/AndroidRuntime(5418): java.lang.RuntimeException: getParameters failed (empty parameters) - - //Start the preview - Log.e("Rotor", "Starting preview"); - //mCamera.setPreviewCallback(new cam_PreviewCallback()); - mCamera.setPreviewDisplay(surfaceHolder); - mCamera.startPreview(); - - } - - protected void startRecording() throws IOException - { - if(mCamera==null) - mCamera = Camera.open(); - - String filename; - String path; - - path= Environment.getExternalStorageDirectory().getAbsolutePath().toString(); - - Date date=new Date(); - filename="/rec"+date.toString().replace(" ", "_").replace(":", "_")+".mp4"; - - Log.i(null, "Saving video file: " + filename); - - //create empty file it must use - File file=new File(path,filename); - - mrec = new MediaRecorder(); - - mCamera.lock(); - mCamera.unlock(); - - // Please maintain sequence of following code. - - // If you change sequence it will not work. - mrec.setCamera(mCamera); - mrec.setVideoSource(MediaRecorder.VideoSource.CAMERA); - //mrec.setAudioSource(MediaRecorder.AudioSource.MIC); - mrec.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); - mrec.setVideoEncoder(MediaRecorder.VideoEncoder.MPEG_4_SP); - //mrec.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); - mrec.setPreviewDisplay(surfaceHolder.getSurface()); - mrec.setOutputFile(path+filename); - mrec.prepare(); - mrec.start(); - - Log.i(null, "Audio file: " + uriSound); - - //try { - //MediaPlayer mp = new MediaPlayer(); - //MediaPlayer mp = MediaPlayer.create(this, R.raw.stick); - mp = MediaPlayer.create(this, uriSound); - //mp.setDataSource(this, uriSound); - mp.start(); - ///} catch (IllegalArgumentException e) { - // TODO Auto-generated catch block - // e.printStackTrace(); - //} catch (SecurityException e) { - // TODO Auto-generated catch block - // e.printStackTrace(); - //} catch (IllegalStateException e) { - // TODO Auto-generated catch block - // e.printStackTrace(); - //} catch (IOException e) { - // TODO Auto-generated catch block - // e.printStackTrace(); - //} - } - - protected void stopRecording() { - - if(mrec!=null) - { - mrec.stop(); - mrec.release(); - mCamera.release(); - mCamera.lock(); - } - - mp.stop(); - } - - private void releaseMediaRecorder() { - - if (mrec != null) { - mrec.reset(); // clear recorder configuration - mrec.release(); // release the recorder object - } - } - - private void releaseCamera() { - if (mCamera != null) { - mCamera.release(); // release the camera for other applications - mCamera = null; - } - - } - - @Override - public void surfaceChanged(SurfaceHolder holder, int format, int width,int height) { - - } - - @Override - public void surfaceCreated(SurfaceHolder holder) { - - if (mCamera != null) { - Parameters params = mCamera.getParameters(); - mCamera.setParameters(params); - Log.i("Surface", "Created"); - } - else { - Toast.makeText(getApplicationContext(), "Camera not available!", - Toast.LENGTH_LONG).show(); - - finish(); - } - - } - - @Override - public void surfaceDestroyed(SurfaceHolder holder) { - mCamera.stopPreview(); - mCamera.release(); - //http://stackoverflow.com/questions/13235306/method-called-after-release-exception-camera-preview - //mCamera=null; - } - @Override - protected void onActivityResult(int requestCode, int resultCode, Intent data) { - - //if(requestCode == RESULT_OK && requestCode == 10){ - uriSound=data.getData(); - - Log.i("Sound file",uriSound.toString()); - - //String temp="audioFileName"; - //this.getIntent().getStringExtra(temp); - //uriSound=Uri.parse(temp); - //uriSound=Uri.parse("/Music/stick.mp3"); - try { - startPreview(); - } catch (IOException e) { - Log.e("Preview","Error"); - e.printStackTrace(); - } - - //} - } - -} |
