Android examples for Media:Audio Record
creates a media audio recorder, or throws a IOException if the path is not valid.
/*//from ww w . j a v a 2s. c o m * Copyright 2012 Greg Milette and Adam Stroud * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import java.io.IOException; import java.io.PrintWriter; import android.content.Context; import android.content.pm.PackageManager; import android.media.MediaRecorder; import android.os.Environment; import android.util.Log; public class Main{ private static final String TAG = "AudioUtil"; /** * creates a media recorder, or throws a {@link IOException} if * the path is not valid. * @param sdCardPath should contain a .3gp extension */ public static MediaRecorder prepareRecorder(String sdCardPath) throws IOException { if (!isStorageReady()) { throw new IOException("SD card is not available"); } MediaRecorder recorder = new MediaRecorder(); //set a custom listener that just logs any messages RecorderErrorLoggerListener recorderListener = new RecorderErrorLoggerListener(); recorder.setOnErrorListener(recorderListener); recorder.setOnInfoListener(recorderListener); recorder.setAudioSource(MediaRecorder.AudioSource.MIC); recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); Log.d(TAG, "recording to: " + sdCardPath); recorder.setOutputFile(sdCardPath); recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); recorder.prepare(); return recorder; } private static boolean isStorageReady() { String cardstatus = Environment.getExternalStorageState(); if (cardstatus.equals(Environment.MEDIA_REMOVED) || cardstatus.equals(Environment.MEDIA_UNMOUNTED) || cardstatus.equals(Environment.MEDIA_UNMOUNTABLE) || cardstatus.equals(Environment.MEDIA_MOUNTED_READ_ONLY)) { return false; } else { if (cardstatus.equals(Environment.MEDIA_MOUNTED)) { return true; } else { return false; } } } }