Android MediaRecorder录制音频

今天介绍一下在Android中怎么录制音频,在Android中使用MediaRecorder来录制音频,步骤:

  1、创建MediaRecorder对象。

 2、调用MediaRecorder对象的setAudioSource()方法设置声音来源,一般传入MediaRecorder.AudioSource.MIC参数指定录制来在麦克风的声音。

 3、调用MediaRecorder对象的setOutputFormat()设置所录制的音频文件的格式。

 4、调用MediaRecorder对象的setAudioEncode()、setAudioEncodingBitRate(intbitRate)、setAudioSamplingRate(intsamplingRate)设置所录制声音的编码格式、编码位率、采样率等,这些参数将可以控制所录制声音的品质、文件的大小。

  5、调用MediaRecorder对象的setOutputFile(Stringpath)方法设置录制音频文件的保存位置。

  6、调用MediaRecorder的prepare()方法准备录制。

  7、调用MediaRecorder对象的start()方法开始录制。

 8、录制完成,调用MediaRecorder对象的stop()方法停止录制,并调用release()方法释放资源。

  下面上个例子:

public class RecordSound extends Activity
 implements OnClickListener
{
 // 程序中的两个按钮
 ImageButton record , stop;
 // 系统的音频文件
 File soundFile ;
 MediaRecorder mRecorder;
   @Override
 public void onCreate(BundlesavedInstanceState)
 {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  // 获取程序界面中的两个按钮
  record = (ImageButton)findViewById(R.id.record);
  stop = (ImageButton)findViewById(R.id.stop);
  // 为两个按钮的单击事件绑定监听器
  record.setOnClickListener(this);
  stop.setOnClickListener(this);
 }
   @Override
 public void onDestroy()
 {
  if (soundFile != null&& soundFile.exists())
  {
   // 停止录音
   mRecorder.stop();
   // 释放资源
   mRecorder.release();
   mRecorder =null;
  }
  super.onDestroy();
 }
 @Override
 public void onClick(View source)
 {
  switch (source.getId())
  {
   //单击录音按钮
   caseR.id.record:
    if(!Environment.getExternalStorageState().equals(
     android.os.Environment.MEDIA_MOUNTED))
    {
     Toast.makeText(RecordSound.this
      ,"SD卡不存在,请插入SD卡!"
      ,5000)
      .show();
     return;
    }
    try
    {
     //创建保存录音的音频文件
     soundFile= new File(Environment
      .getExternalStorageDirectory()
      .getCanonicalFile()+ "/sound.amr");
     mRecorder= new MediaRecorder();
     //设置录音的声音来源
     mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
     //设置录制的声音的输出格式(必须在设置声音编码格式之前设置)
     mRecorder.setOutputFormat(MediaRecorder
      .OutputFormat.THREE_GPP);
     //设置声音编码的格式
     mRecorder.setAudioEncoder(MediaRecorder
      .AudioEncoder.AMR_NB);
     mRecorder.setOutputFile(soundFile.getAbsolutePath());
     mRecorder.prepare();
     //开始录音
     mRecorder.start();
    }
    catch(Exception e)
    {
     e.printStackTrace();
    }
    break;
   //单击停止按钮
   caseR.id.stop:
    if(soundFile != null &&soundFile.exists())
    {
     //停止录音
     mRecorder.stop();
     //释放资源
     mRecorder.release();
     mRecorder= null;
    }
    break;
  }
 }
}

  备注:记得添加权限:

<!-- 授予该程序录制声音的权限 -->
<uses-permissionandroid:name="android.permission.RECORD_AUDIO"/>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值