first commit

master
unknown 6 years ago
commit 1a8c9839b0

@ -0,0 +1,114 @@
package com.record;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.media.MediaRecorder;
import android.os.Environment;
import android.view.Window;
import android.widget.Button;
import android.widget.Toast;
import java.io.File;
import java.io.IOException;
@SuppressLint("Registered")
public class RecordActivity extends Activity implements View.OnClickListener {
Button startRecording, stopRecording, pauseRecording;//开始录音、停止录音、释放资源
MediaRecorder recorder;
File audioFile; //录音保存的文件
boolean isRecoding = false;// true 表示正在录音
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
init();
initListener();
}
//初始化
public void init() {
stopRecording = (Button) this.findViewById(R.id.btn_stop);
startRecording = (Button) this.findViewById(R.id.btn_play);
pauseRecording = (Button) this.findViewById(R.id.btn_pause);
if (!path.exists()) {
path.mkdirs();
}
}
//初始化麦克风
private void InitMedia(){
recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);//设置播放源 麦克风
recorder.setOutputFormat(MediaRecorder.OutputFormat.AMR_NB); //设置输入格式 3gp
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); //设置编码AMR
}
//设置监听器
public void initListener() {
startRecording.setOnClickListener(this);
stopRecording.setOnClickListener(this);
pauseRecording.setOnClickListener(this);
}
//此处还应该对手机进行下判断,判断下手机里面有没有内存卡
//保存在SD卡下MediaRecorderTest文件夹中
File path = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/MediaRecorderTest");
//录音
public void recod() {
InitMedia();
int i = (int) (Math.random() * 10000);
String a = Integer.toString(i);
String b = "Voice";
String FileName = b + a;
try {
audioFile = new File(path, FileName + ".aac");
//audioFile=new File(path,"ycc.aac");
if (audioFile.exists()) {
audioFile.delete();
}
audioFile.createNewFile();//创建文件
} catch (Exception e) {
throw new RuntimeException("Couldn't create recording audio file", e);
}
recorder.setOutputFile(audioFile.getAbsolutePath()); //设置输出文件
try {
recorder.prepare();
} catch (IllegalStateException e) {
throw new RuntimeException("IllegalStateException on MediaRecorder.prepare", e);
} catch (IOException e) {
throw new RuntimeException("IOException on MediaRecorder.prepare", e);
}
isRecoding = true;
recorder.start();
}
public void onClick(View v) {
//开始录音
while (true){
if (v == startRecording) {
Toast.makeText(RecordActivity.this, "开始录音", Toast.LENGTH_SHORT).show();
recod();
break;
}
if (v == pauseRecording) {
}
//停止录音
if (v == stopRecording) {
if (isRecoding) {
Toast.makeText(RecordActivity.this, "录音结束,文件已存至/MediaRecorderTest", Toast.LENGTH_SHORT).show();
recorder.stop();//调用stop之后recorder会被清空再次录音要再次初始化recorder
break;
}
}
}
}
}
Loading…
Cancel
Save