Android MediaRecorder录音
2015-11-03 11:11
525 查看
Android MediaRecorder录音具体实现代码如下:
public class MainActivity extends Activity implements OnClickListener { private static final String TAG = "RECORD_TAG"; private String fileSavePath = null; private String fileName = null; private String recFilePath = null; private Button btnStartRec, btnStopRec, btnPlayRec, btnStopPlay; private MediaPlayer mPlayer = null; private MediaRecorder mRecorder = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btnStartRec = (Button) findViewById(R.id.btnStartRec); btnStopRec = (Button) findViewById(R.id.btnStopRec); btnPlayRec = (Button) findViewById(R.id.btnPlayRec); btnStopPlay = (Button) findViewById(R.id.btnStopPlay); btnStartRec.setOnClickListener(this); btnStopRec.setOnClickListener(this); btnPlayRec.setOnClickListener(this); btnStopPlay.setOnClickListener(this); fileSavePath = Environment.getExternalStorageDirectory() .getAbsolutePath() + "/Record/"; File f = new File(fileSavePath); if (!f.exists()) { f.mkdirs(); } } //创建文件名 private String createFileName() { return String.valueOf(System.currentTimeMillis()) + ".3gp"; } private void startRecord() { fileName = createFileName(); recFilePath = fileSavePath + fileName; mRecorder = new MediaRecorder(); mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); mRecorder.setOutputFile(recFilePath); mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); try { mRecorder.prepare(); mRecorder.start(); } catch (Exception e) { e.printStackTrace(); } } private void stopRecord() { try { mRecorder.stop(); mRecorder.release(); mRecorder = null; } catch (Exception e) { e.printStackTrace(); } } private void playRecord() { try { mPlayer = new MediaPlayer(); mPlayer.setDataSource(recFilePath); mPlayer.prepare(); mPlayer.start(); } catch (Exception e) { e.printStackTrace(); } } private void stopPlayRecord() { try { mPlayer.release(); mPlayer = null; } catch (Exception e) { e.printStackTrace(); } } @Override public void onClick(View v) { switch (v.getId()) { case R.id.btnStartRec: startRecord(); break; case R.id.btnStopRec: stopRecord(); break; case R.id.btnPlayRec: playRecord(); break; case R.id.btnStopPlay: stopPlayRecord(); break; default: break; } } }
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories