录音及播放音频文件
16lz
2022-05-29
需要的权限
<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; }
更多相关文章
- Android中创建文件以及文件夹
- Android(安卓)使用AsyncHttpClient文件上传与下载
- android 将bitmap缓存到本地
- Android文件操作
- android 判断文件是否存在
- Android(安卓)使用decodeFile方法加载手机磁盘中的图片文件
- Android(安卓)读写XML文件(使用pull解析)
- android上传文件
- NPM 和webpack 的基础使用