其实我们要是想实现录音效果的话,大脑里第一个想的就是先把布局写好,完事以后我们在设置录音按钮点击事件。完事创建录音对象,我们还应该想到的就是设置输出格式、设置编码格式、设置输出文件。这些主要的设置完,我们的录音代码就快完成,剩下的就是一些不怎么主要的了,记住还要设置权限。下面我们就来看看代码是怎么写的吧:

<?xml version="1.0" encoding="utf-8"?>     <LINEARLAYOUT xmlns:android="http:///apk/res/android" android:layout_height="fill_parent"   android:layout_width="fill_parent"   androidrientation="vertical"   android:gravity="center">     <BUTTON   android:layout_height="wrap_content"   android:layout_width="wrap_content"   android:text="录音"   android:textsize="30sp"   android:id="@+id/Button01">     </BUTTON>     <BUTTON   android:layout_height="wrap_content"   android:layout_width="wrap_content"   android:text="停止" android:textsize="30sp"   android:id="@+id/Button02"   android:layout_margintop="20dp">     </BUTTON>     </LINEARLAYOUT> 

下面是main代码:

package eoe.android;     import java.io.File;   import java.io.IOException;   import java.util.Calendar;   import java.util.Locale;   import .Activity;   import .MediaRecorder;   import android.os.Bundle;   import android.text.format.DateFormat;   import android.view.View;   import android.widget.Button;   import android.widget.Toast;     public class MainActivity extends Activity {     private Button recordButton;   private Button stopButton;   private MediaRecorder mr;     @Override   public void onCreate(Bundle savedInstanceState) {     super.onCreate(savedInstanceState);   setContentView(R.layout.main);     recordButton = (Button) this.findViewById(.Button01);   stopButton = (Button) this.findViewById(.Button02);     // 录音按钮点击事件   recordButton.setOnClickListener(new View.OnClickListener() {     @Override   public void onClick(View v) {     File file = new File("/sdcard/"  + "YY" + new DateFormat().format("yyyyMMdd_hhmmss", Calendar.getInstance(Locale.CHINA)) + ".amr");     Toast.makeText(getApplicationContext(), "正在录音,录音文件在"+file.getAbsolutePath(), Toast.LENGTH_LONG) .show();     // 创建录音对象   mr = new MediaRecorder();     // 从麦克风源进行录音   mr.setAudioSource(MediaRecorder.AudioSource.DEFAULT);     // 设置输出格式   mr.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);     // 设置编码格式   mr.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);     // 设置输出文件   mr.setOutputFile(file.getAbsolutePath());     try {     // 创建文件   file.createNewFile();     // 准备录制   mr.prepare();     } catch (IllegalStateException e) {   e.printStackTrace();     } catch (IOException e) {   e.printStackTrace();     }     // 开始录制   mr.start();     recordButton.setText("录音中……");     }   });     // 停止按钮点击事件   stopButton.setOnClickListener(new View.OnClickListener() {     @Override   public void onClick(View v) {     if (mr != null) {     mr.stop();   mr.release();   mr = null;     recordButton.setText("录音");     Toast.makeText(getApplicationContext(), "录音完毕", Toast.LENGTH_LONG).show();     }   }   });   }   } 

下面就是很重要的了,就是在AndroidManifest.xml里设置权限,不写它你就无法实现效果。

<?xml version="1.0" encoding="utf-8"?>     <MANIFEST xmlns:android="http:///apk/res/android"   android:versioncode="1"     android:versionname="1.0">     <APPLICATION   android:icon="@drawable/icon"   android:label="@string/app_name"   android:debuggable="true">     <ACTIVITY   android:label="@string/app_name"   android:name=".MainActivity"   android:screenorientation="portrait" android:configchanges="orientation|keyboardHidden|keyboard">     <INTENT -filter>     <ACTION android:name="android.intent.action.MAIN" />   <CATEGORY android:name="android.intent.category.LAUNCHER" />     </INTENT>     </ACTIVITY>     </APPLICATION>     <USES android:minsdkversion="4" -sdk />   <USES android:name="android.permission.RECORD_AUDIO" -permission></USES>   <USES android:name="android.permission.WRITE_EXTERNAL_STORAGE" -permission></USES>     </MANIFEST> 

效果图:

Android中的录音效果_android开发     

当点击录音时

Android中的录音效果_录音_02