android录音这是也是很平常的一件事 特别是那种社交app用的多

接下来就说一个dome 算是复习了把

先看下录音的架构图把

我想上面的图应该可以看懂把 

我先说下我做的app的效果图把

点击停止会保存到sd卡上

直接看java代码把

public class MainActivity extends Activity {

	private TextView tv;
	private MediaRecorder mr;
	private Timer timer;
	private TimerTask task;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		tv = (TextView) findViewById(R.id.tv);
		mr = new MediaRecorder();
		
		timer = new Timer();
		task = new TimerTask() {
			
			@Override
			public void run() {
				//使用handler
				handler.sendEmptyMessage(0);
			}
		};
	}
	int t = 0;
	//使用 Handler 修改进度
	Handler handler = new Handler(){
		public void handleMessage(android.os.Message msg) {
			switch (msg.what) {
			case 0:
				//更新时间
				tv.setText("录音的时间: "+(t++));
				break;
			}
		};
	};
	
	public void l(View v){
		try {
			//设置音频资源 麦克风
			mr.setAudioSource(AudioSource.MIC);
			//设置输出格式
			mr.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
			//设置录音格式
			mr.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
			//设置输出路径
			mr.setOutputFile("/mnt/sdcard/ab.mp3");
			//准备
			mr.prepare();
			//开始
			mr.start();
			//更新进度
			timer.schedule(task, 0, 1000);
		} catch (Exception e) {
			e.printStackTrace();
		}		
	}
	
	public void t(View v){
		//
		mr.stop();
		mr.reset();
		mr.release();
		//
		timer.cancel();
		Toast.makeText(this, "录音文件保存成功", 1000).show();
	}
}

  这里需要注意的是 需要加入权限

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

 

posted on 2014-12-30 15:18  Striver_zw  阅读(191)  评论(0编辑  收藏  举报