本文以实例形式较为详细的展示了Android录音的实现方法,分享给大家供大家参考之用。具体方法如下:

首先是xml布局文件:

   

运行效果如下图所示:

MainActivity中定义按钮的点击监听器,按下按钮时开始录音,松开按钮时停止录音,类似于微信的操作方法。

// 获得控件public void get_con(){     btn_talk = (Button)findViewById(R.id.btn_talk);  btn_talk.setOnTouchListener(new OnTouchListener(){    @Override    public boolean onTouch(View v, MotionEvent e) {      if (e.getAction() == MotionEvent.ACTION_DOWN){        // 开始录音        start_record();      }      else if (e.getAction() == MotionEvent.ACTION_UP){        // 停止录音        stop_record();      }      return false;    }  });}

开始录音的方法,使用了android.media.MediaRecorder录音。首先判断SD卡是否存在,如果存在根据当前时间给创建一个录音文件,保存到预定的目录中,用MediaRecorder类开始录音。

// 开始录音public void start_record(){  if (!Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)){         show_status("SD卡不存在,请插入SD卡!");       }  else{    try    {      // 获取当前时间      cur_date = new Date(System.currentTimeMillis());      str_file = formatter.format(cur_date);       // 创建保存录音的音频文件      send_sound_file = new File(Environment.getExternalStorageDirectory().getCanonicalFile() + "/talk/send");      // 如果目录不存在      if (!send_sound_file.exists()){        send_sound_file.mkdirs();      }      send_sound_file = new File(Environment.getExternalStorageDirectory().getCanonicalFile() + "/talk/send/" + str_file + ".amr");      recorder = new MediaRecorder();      // 设置录音的声音来源      recorder.setAudioSource(MediaRecorder.AudioSource.MIC);      // 设置录制的声音的输出格式(必须在设置声音编码格式之前设置)      recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);      // 设置声音编码的格式      recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);      recorder.setOutputFile(send_sound_file.getAbsolutePath());      recorder.prepare();      // 开始录音      recorder.start();    }    catch (Exception e)    {      show_status(e.toString());    }  }}

停止录音的方法,相对简单。

// 停止录音public void stop_record(){  if (send_sound_file != null && send_sound_file.exists())  {    ses_id = ses_id + 1;    // 停止录音    recorder.stop();    // 释放资源    recorder.release();    recorder = null;  }  super.onDestroy();}

经过测试,录制的3gp文件可以正常播放。

希望本文所述对大家的Android程序设计有所帮助。

更多相关文章

  1. android 倒计时的控件,以动画的形式平滑的完成数字的过度
  2. android开发――ListView组件
  3. Android(安卓)Studio开发界面自定义,更有利于开发
  4. 2012年4月7日学习记录
  5. Android(安卓)manifest文件中的标签详细介绍
  6. android的充电图标显示
  7. Android中TabLayout切换选项背景和修改字体大小
  8. Android获取服务器后台数据
  9. 【Android(安卓)开发】:UI控件之 ProgressBar 进度条的使用

随机推荐

  1. Android属性动画完全解析(一)
  2. Android Uri转换成真实File路径
  3. Android(安卓)Surfaceflinger 的使用
  4. 【Android】SQLite数据库的简单使用
  5. Android自定义AlertDialog实现
  6. android仿滴滴司机端滑动接到乘客,送达乘
  7. Android 获取MIEI ISMI Sim卡串号等等信
  8. Migrating Your Android App from Eclips
  9. android launch 初探
  10. Android短信转发默认不需要转发号码修改