如下代码为Android源码的录音代码修改,只要稍微修改即可以运到自己的应用中。
package com.android.phone;import android.app.Activity;import android.os.Bundle;import java.io.File;import android.content.ContentResolver;import android.content.ContentValues;import android.content.Context;import android.content.Intent;import android.media.MediaRecorder;import android.net.Uri;import android.os.Bundle;import android.os.Environment;import android.os.StatFs;import android.provider.MediaStore;import android.provider.MediaStore.MediaColumns;import android.util.Log;import android.view.ContextThemeWrapper;import android.view.View;import android.widget.Button;import android.widget.Toast;import java.text.SimpleDateFormat;import java.util.Date;/** * This is main class which shows how to capture/record audio *  * @author The Developer's Info *  */public class CallRecorder {private MediaRecorder mediaRecorder;private File file = null;static String PREFIX = "CR-"; // CallReading by kylinstatic final String EXTENSION = ".amr";// .3gpp by kylinpublic static boolean recorderOn = false;// Add by kylin 2011.10.21 beginprivate String mDisplayName;private String mDisplayNumber;Context mContext;/** * This method starts recording process *  * @param displayNumber * @throws Exception */// Add by kylin 2011.10.21 beginpublic CallRecorder(Context context, String displayName,String displayNumber) {mContext = context;mDisplayName = displayName;mDisplayNumber = displayNumber;if (null != mDisplayName && !mDisplayName.trim().equals("")) {PREFIX = PREFIX + mDisplayName + "-";} else {PREFIX = PREFIX + mDisplayNumber + "-";}}// endpublic void startRecording() throws Exception {mediaRecorder = new MediaRecorder();mediaRecorder.setAudioSource(MediaRecorder.AudioSource.VOICE_CALL);mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);// Mod by kylin 2011.10.03 beginString dir = Environment.getExternalStorageDirectory() + "/Recording";if (file == null) {// File rootDir = Environment.getExternalStorageDirectory();File newRootDir = new File(dir);if (!newRootDir.exists()) {newRootDir.mkdir();}file = File.createTempFile(PREFIX, EXTENSION, newRootDir);}mediaRecorder.setOutputFile(file.getAbsolutePath());// mediaRecorder.setOutputFile(dir);// endmediaRecorder.prepare();mediaRecorder.start();}/** * This method stops recording */public void stopRecording() {mediaRecorder.stop();mediaRecorder.release();mediaRecorder = null;PREFIX = "CR-"; // Add by kylin 2011.10.21}/** * This method sets all metadata for audio file */public void saveToDB() {ContentValues values = new ContentValues(3);long current = System.currentTimeMillis();long modDate = file.lastModified();Date date = new Date(current);SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String title = formatter.format(date);values.put(MediaStore.Audio.Media.IS_MUSIC, "0");values.put(MediaStore.Audio.Media.TITLE, title);values.put(MediaStore.Audio.Media.DATA, file.getAbsolutePath());values.put(MediaStore.Audio.Media.DATE_ADDED, (int) (current / 1000));values.put(MediaStore.Audio.Media.DATE_MODIFIED, (int) (modDate / 1000));values.put(MediaStore.Audio.Media.MIME_TYPE, "audio/mp3");values.put(MediaStore.Audio.Media.ARTIST, "CallRecord");values.put(MediaStore.Audio.Media.ALBUM, "CallRecorder");ContentResolver contentResolver = mContext.getContentResolver();Uri base = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;Uri newUri = contentResolver.insert(base, values);mContext.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, newUri));}}

更多相关文章

  1. Android开发便签3:TextView的自动检测文本中的超链接和自动补全
  2. webkit中的javascript和android交互
  3. SQLiteException: no such column:好
  4. android中引入okhttp
  5. android Activity.java 源码
  6. WKWebView的JS与Native的交互,适配iOS和andriod的HTML代码
  7. Android基于自带的DownloadManager实现下载功能示例

随机推荐

  1. Android(安卓)LBS系列01 使用Location Ma
  2. Android(安卓)sdk适配指南心得
  3. android中打开本地doc、pdf、ppt、text等
  4. 下拉列表 spinner(android)
  5. Android(安卓)Camera 视频循环录制
  6. android 检测外接键盘并设置输入法布局
  7. android studio使用jni调用opencv库实现
  8. Android运行时权限一览表
  9. [Android|深度学习移植]--基于ncnn的RK33
  10. android RadioGroup实现单选以及默认选中