需要的权限

<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

 

    MediaRecorder media = new MediaRecorder();
    // 设定录音来源为麦克风  MIC|DEFAULT
    media.setAudioSource(MediaRecorder.AudioSource.MIC);
    // DEFAULT|MPEG_4|THREE_GPP
    media.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);
    // DEFAULT|AMR_NB
    media.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);

    // 输出文件
    File audioFile = File.createTempFile("temp3", ".amr",
    Environment.getExternalStorageDirectory());
    media.setOutputFile(audioFile.getAbsolutePath());

    media.prepare();
    media.start();

 

停止录音

    // 停止录音
    media.stop();
    media.release();
    media = null;

 

开启播放录音的程序

  private void openFile(File f){
    Intent intent = new Intent();
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    intent.setAction(android.content.Intent.ACTION_VIEW);

    String type = getMIMEType(f);
    intent.setDataAndType(Uri.fromFile(f), type);
    startActivity(intent);
  }

  private String getMIMEType(File f){
    String end = f.getName().substring(
        f.getName().lastIndexOf(".") + 1, f.getName().length())
        .toLowerCase();
    String type = "";
    if (end.equals("mp3") || end.equals("aac") || end.equals("aac")
        || end.equals("amr") || end.equals("mpeg")
        || end.equals("mp4")){
      type = "audio";
    } else if (end.equals("jpg") || end.equals("gif")
        || end.equals("png") || end.equals("jpeg")){
      type = "image";
    } else {
      type = "*";
    }
    type += "/*";
    return type;
  }

 

取得所有amr文件

  // 第一个参数目录,第二个参数,后缀名
  private ArrayList<String> getRecordFiles(File dir,String suffix){
    ArrayList<String> recordFiles = new ArrayList<String>();
    if (dir.exists()){
      File files[] = dir.listFiles();
      if (files == null)
        return recordFiles;
        
      for (int i = 0; i < files.length; i++){
          
         if (files[i].getName().indexOf(".") >= 0){
            /* 读取.amr文件 */
            String fileS = files[i].getName().substring(
                files[i].getName().indexOf("."));
            if (fileS.toLowerCase().equals(suffix))
              recordFiles.add(files[i].getName());

         }
      }
    }
    return recordFiles;
  }

 

posted on 2015-04-24 11:15  道无涯  阅读(545)  评论(0编辑  收藏  举报