录制音频主要api

  MediaRecorder.setAudioSource

  MediaRecorder.setOutputFormat

  MediaRecorder.setAudioEncoder

  MediaRecorder.setOutputFile

  MediaRecorder.prepare

  MediaRecorder.start

  MediaRecorder.stop

  MediaRecorder.release

录制音频示例

  1 import java.io.File;
  2 import android.app.Activity;
  3 import android.media.MediaPlayer;
  4 import android.media.MediaRecorder;
  5 import android.os.Bundle;
  6 import android.view.View;
  7 import android.view.View.OnClickListener;
  8 import android.widget.Button;
  9 import android.widget.Toast;
 10 
 11 /*
 12  * 录制音频示例
 13  */
 14 public class Main extends Activity  implements OnClickListener
 15 {
 16     //录制音频 第1步,声明权限
 17     /*
 18      * <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
 19      * <uses-permission android:name="android.permission.RECORD_AUDIO" />
 20      */
 21     
 22     //录制音频 第2步,声明相关成员变量
 23     private File recordAudioFile;//录制后生成的文件
 24     private MediaRecorder mediaRecorder;//录制音频
 25     private MediaPlayer mediaPlayer;//播放音频
 26     @Override
 27     public void onCreate(Bundle savedInstanceState)
 28     {
 29         super.onCreate(savedInstanceState);
 30         setContentView(R.layout.main);
 31         
 32         
 33         //录制音频 第3步,录制控制按钮
 34         Button btnRecord = (Button)findViewById(R.id.btnRecord);
 35         Button btnStop = (Button)findViewById(R.id.btnStop);
 36         Button btnPlay = (Button)findViewById(R.id.btnPlay);
 37         Button btnDelete = (Button)findViewById(R.id.btnDelete);
 38         
 39         btnRecord.setOnClickListener(this);
 40         btnStop.setOnClickListener(this);
 41         btnPlay.setOnClickListener(this);
 42         btnDelete.setOnClickListener(this);
 43 
 44     }
 45     /*
 46      * 各按钮事件 
 47      */
 48     public void onClick(View view)
 49     {
 50         try {
 51             switch (view.getId()) {
 52             case R.id.btnRecord:
 53                 //录制音频 第4步,构造录制文件,这里用的是临时文件,注意android系统会对名字自动去重.不会覆盖.
 54                 recordAudioFile = File.createTempFile("record", ".amr");
 55                 
 56                 //录制音频 第5步,构造MediaRecorder
 57                 mediaRecorder = new MediaRecorder();
 58                 
 59                 //录制音频 第6步,设置各音频参数
 60                 //设置音频采集源
 61                 mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
 62                 //设置音频格式,android本身支持的格式少,可以将其它解码器移植到android上
 63                 mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
 64                 //设置音频编码
 65                 mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
 66                 //目录文件
 67                 mediaRecorder.setOutputFile(recordAudioFile.getAbsolutePath());
 68                 
 69                 //录制音频 第7步,开始prepare和录制,
 70                 mediaRecorder.prepare();
 71                 mediaRecorder.start();
 72                 
 73                 //提示
 74                 Toast.makeText(this, "已经开始录制", Toast.LENGTH_LONG).show();
 75                 
 76                 break;
 77             case R.id.btnStop:
 78                 
 79                 //录制音频 第8步,停止录制.释放资源
 80                 if(mediaRecorder != null)
 81                 {
 82                     mediaRecorder.stop();
 83                     mediaRecorder.release();
 84                     mediaRecorder = null;
 85                     Toast.makeText(this,"停止录制", Toast.LENGTH_LONG).show();
 86                 }
 87                 break;
 88             case R.id.btnPlay:
 89                 
 90                 //录制音频 第9步,播放录制好的音频文件.
 91                 mediaPlayer = new MediaPlayer();
 92                 mediaPlayer.setDataSource(recordAudioFile.getAbsolutePath());
 93                 mediaPlayer.prepare();
 94                 mediaPlayer.start();
 95                 break;
 96             case R.id.btnDelete:
 97                 
 98                 //录制音频 第10步,删除录制生成的文件
 99                 recordAudioFile.delete();
100                 break;
101             default:
102                 break;
103             }
104             
105         } catch (Exception e) {
106         }
107     }
108 }

 

相关文章: