How to capture audio in an android application?

By | October 5, 2010

This code snippet captures audio from a given source and saves it to a file with android.media.MediaRecorder.

[java]
/* Create a MediaRecorder */
recorder = new MediaRecorder();

/* ContentValues include title, timestamp, mime type */
ContentValues values = new ContentValues(3);
values.put(MediaStore.MediaColumns.TITLE, SOME_NAME_HERE);
values.put(MediaStore.MediaColumns.TIMESTAMP, System.currentTimeMillis());
values.put(MediaStore.MediaColumns.MIME_TYPE, recorder.getMimeContentType());

/* Create entry in the content database */
ContentResolver contentResolver = new ContentResolver();
Uri base = MediaStore.Audio.INTERNAL_CONTENT_URI;
Uri newUri = contentResolver.insert(base, values);

if (newUri == null) {
/* Handle exception here – not able to create a new content entry */
}

/* Receive the real path as String */
String path = contentResolver.getDataFilePath(newUri);

/* Set Audio Source, Format, Encode and File */
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setOutputFile(path);

/* Prepare the Recorder */
recorder.prepare();

/* Start Recording */
recorder.start();

/* … */

/* Stop Recording Again */
recorder.stop();
recorder.release();

[/java]

Leave a Reply

Your email address will not be published. Required fields are marked *