Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android實現錄音的方法(最重要的是對MediaRecorder的試用方法)

Android實現錄音的方法(最重要的是對MediaRecorder的試用方法)

編輯:關於Android編程

package cn.eoe.record;

import java.io.File;
import java.io.IOException;

import android.app.Activity;
import android.media.MediaRecorder;
import android.os.Bundle;
import android.os.Environment;
import android.view.View;
import android.view.View.OnClickListener;

public class MainActivity extends Activity {

	private OnClickListener btnClickListener = new OnClickListener() {
		@Override
		public void onClick(View v) {

			switch (v.getId()) {
				case R.id.btnStartRecord :
					startRecord();
					break;
				case R.id.btnStopRecord :
					stopRecord();
					break;
			}

		}
	};

	private void startRecord() {
		if (mp == null) {
			File dir = new File(Environment.getExternalStorageDirectory(), "sounds");
			if (!dir.exists()) {
				dir.mkdirs();
			}
			File soundFile = new File(dir, System.currentTimeMillis() + ".amr");
			if (!soundFile.exists()) {
				try {
					soundFile.createNewFile();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
			mp = new MediaRecorder();
			mp.setAudioSource(MediaRecorder.AudioSource.MIC);
			mp.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
			mp.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
			mp.setOutputFile(soundFile.getAbsolutePath());
			try {
				mp.prepare();
				mp.start();
			} catch (IllegalStateException e) {
				e.printStackTrace();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}

	private void stopRecord() {
		if (mp != null) {
			mp.stop();
			mp.release();
			mp = null;
		}
	}

	private MediaRecorder mp = null;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		findViewById(R.id.btnStartRecord).setOnClickListener(btnClickListener);
		findViewById(R.id.btnStopRecord).setOnClickListener(btnClickListener);
	}
}

最最重要的是對MediaRecorder的操作。怎麼去釋放啊,怎麼去初始化,然後就可以播放了,其實非常簡單。

關鍵性代碼在這裡:

	mp = new MediaRecorder();
			mp.setAudioSource(MediaRecorder.AudioSource.MIC);
			mp.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
			mp.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
			mp.setOutputFile(soundFile.getAbsolutePath());

最後停止錄音那段,就需要直接停止就可以了。釋放掉MediaRecorder()這個對象,釋放成空的。

先Stop,然後Release(),然後值為空!

最新感言:技術這東西,需要不斷的學習,不斷的努力!不要停止,唯有科學技術是第一生產力。這2年下來沒有繼續挖掘技術,造成技術很差。要努力了!!!

技術不怎麼行,被領導談話了幾次,深深的加深了我對自己的思考。我不能停止努力,加油才是硬道理!!!!

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved