码迷,mamicode.com
首页 > 其他好文 > 详细

录音及播放音频文件

时间:2015-04-24 11:55:55      阅读:120      评论:0      收藏:0      [点我收藏+]

标签:

 

需要的权限

<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;
  }

 

录音及播放音频文件

标签:

原文地址:http://www.cnblogs.com/huangzx/p/4452891.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!