The following code shows how to Record audio.
Register permission in manifest xml file
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.java2s.myapplication3.app" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="18" /> <uses-permission android:name="android.permission.RECORD_AUDIO"></uses-permission> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="java2s.com" android:theme="@style/AppTheme" > <activity android:name="com.java2s.myapplication3.app.MainActivity" android:label="java2s.com" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
Layout xml file
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <Button android:id="@+id/startButton" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Start Recording" /> <Button android:id="@+id/stopButton" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Stop Recording" android:enabled="false" /> </LinearLayout>
Main activity Java code
package com.java2s.myapplication3.app; // w w w . ja v a2s . c om import java.io.File; import android.app.Activity; import android.media.MediaRecorder; import android.os.Bundle; import android.os.Environment; import android.view.View; import android.widget.Button; public class MainActivity extends Activity { private MediaRecorder recorder; private Button start, stop; File path; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); start = (Button)findViewById(R.id.startButton); start.setOnClickListener(startListener); stop = (Button)findViewById(R.id.stopButton); stop.setOnClickListener(stopListener); recorder = new MediaRecorder(); path = new File(Environment.getExternalStorageDirectory(),"myRecording.3gp"); resetRecorder(); } @Override public void onDestroy() { super.onDestroy(); recorder.release(); } private void resetRecorder() { recorder.setAudioSource(MediaRecorder.AudioSource.MIC); recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); recorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT); recorder.setOutputFile(path.getAbsolutePath()); try { recorder.prepare(); } catch (Exception e) { e.printStackTrace(); } } private View.OnClickListener startListener = new View.OnClickListener() { @Override public void onClick(View v) { try { recorder.start(); start.setEnabled(false); stop.setEnabled(true); } catch (Exception e) { e.printStackTrace(); } } }; private View.OnClickListener stopListener = new View.OnClickListener() { @Override public void onClick(View v) { recorder.stop(); resetRecorder(); start.setEnabled(true); stop.setEnabled(false); } }; }