packagecom.test.mediarecorder;importjava.io.File;importandroid.media.MediaRecorder;importandroid.os.Bundle;importandroid.os.Environment;importandroid.app.Activity;importandroid.view.Menu;importandroid.view.View;importandroid.view.View.OnClickListener;importandroid.widget.Button;importandroid.widget.Toast;public class MainActivity extends Activity implementsOnClickListener {privateButton start, stop;privateMediaRecorder recorder;privateFile soundFile;protected voidonCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);
setContentView(R.layout.main);
start=(Button) findViewById(R.id.start);
stop=(Button) findViewById(R.id.stop);
start.setOnClickListener(this);
stop.setOnClickListener(this);
recorder= newMediaRecorder();
System.out.println(Environment.getExternalStorageDirectory());
}
@Overridepublic voidonClick(View v) {try{switch(v.getId()) {caseR.id.start:if (!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
Toast.makeText(this, "SD not exists", Toast.LENGTH_LONG).show();return;
}//create file to save sound
soundFile = new File(Environment.getExternalStorageDirectory().getCanonicalFile() + "/sound.amr");//set the sound source
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);//set the sound output type it must before set sound encoding
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);//set sound encoding
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setOutputFile(soundFile.getAbsolutePath());
recorder.prepare();//start record sound
recorder.start();break;caseR.id.stop:if (soundFile != null &&soundFile.exists()) {//stop record
recorder.stop();
recorder.release();
recorder= null;
}break;
}
}catch(Exception e) {
e.printStackTrace();
}
}
}