package mjf.record;
import java.io.File;
import java.io.IOException;
import android.app.Activity;
import android.media.AudioManager;
import android.media.MediaRecorder;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.media.MediaRecorder;
public class SimpleRecorder extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button btnStart = (Button) findViewById(R.id.btn_start);
Button btnStop = (Button) findViewById(R.id.btn_stop);
Button btnPause = (Button) findViewById(R.id.btn_pause);
Button btnResume = (Button) findViewById(R.id.btn_resume);
// mRecorder = new MediaRecorder();
btnStart.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
onRestartRecording();
}
});
btnStop.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
onStopRecording();
}
});
btnPause.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
onPauseRecording();
}
});
btnResume.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
onResumeRecording();
}
});
}
private File mSampleFile;
private MediaRecorder mRecorder;
private void initRecorder() {
Log.v("AP","setAudioSource:2");
mRecorder.setAudioSource(/*MediaRecorder.AudioSource.MIC*/2);
Log.v("AP","setOutputFormat:4");
mRecorder.setOutputFormat(/*MediaRecorder.OutputFormat.RAW_AMR*/4);
Log.v("AP","setAudioEncoder:2");
mRecorder.setAudioEncoder(/*MediaRecorder.AudioEncoder.AMR_NB*/2);
mSampleFile = null;
try {
mSampleFile = File.createTempFile("record", ".wav", Environment
.getExternalStorageDirectory());
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
// AudioManager am;
mRecorder.setOutputFile(mSampleFile.getAbsolutePath());
try {
mRecorder.prepare();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
private void onRestartRecording() {
// when plan comes to interrupt activity
Log.i("Start Rec", "MessageManager");
mRecorder = new MediaRecorder();
initRecorder();
mRecorder.start();
}
private void onStopRecording() {
Log.i("stop rec", "MessageManager");
if (mRecorder != null) {
mRecorder.stop();
mRecorder.release();
mRecorder = null;
}
}
private void onPauseRecording() {
Log.i("pause rec", "MessageManager");
mRecorder.reset();
}
private void onResumeRecording() {
Log.i("resume rec", "MessageManager");
mRecorder.start();
}
}
一个基于GoogleAndroid平台的录音机代码
4星 · 超过85%的资源 需积分: 10 93 浏览量
2009-11-13
22:27:42
上传
评论
收藏 31KB RAR 举报
mjfsyj
- 粉丝: 2
- 资源: 4
最新资源
- 高等数学第一章第二节数列的极限
- Python 版冒泡排序算法源代码
- tensorflow-gpu-2.7.2-cp38-cp38-manylinux2010-x86-64.whl
- tensorflow-2.7.3-cp39-cp39-manylinux2010-x86-64.whl
- tensorflow-2.7.2-cp39-cp39-manylinux2010-x86-64.whl
- Python版本快速排序源代码
- Python 语言版的快速排序算法实现
- 450815388207377安卓_base.apk
- 超微主板 X9DRE-TF+ bios 支持 nvme启动
- 基于Python通过下载气象数据和插值拟合离散数据曲线实现对寒潮过程的能量分析
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
- 1
- 2
前往页