android开发文档中有一个关于录音的类MediaRecord,一张图介绍了基本的流程:


给出了一个常用的例子:
MediaRecorder recorder = new MediaRecorder(); recorder.setAudioSource(MediaRecorder.AudioSource.MIC); recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); recorder.setOutputFile(PATH_NAME); recorder.prepare(); recorder.start();   // Recording is now started ... recorder.stop(); recorder.reset();   // You can reuse the object by going back to setAudioSource() step recorder.release(); // Now the object cannot be reused

我在这里实现了一个简单的程序,过程和上述类似,录音以及录音的播放。 1.基本界面如下:

2.工程中各文件内容如下:   2.1 Activity——RecordActivity
package com.cxf;import java.io.IOException;import android.app.Activity;import android.media.MediaPlayer;import android.media.MediaRecorder;import android.os.Bundle;import android.os.Environment;import android.util.Log;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class RecordActivity extends Activity {   private static final String LOG_TAG = "AudioRecordTest";//语音文件保存路径private String FileName = null;//界面控件private Button startRecord; private Button startPlay;private Button stopRecord;private Button stopPlay;//语音操作对象private MediaPlayer mPlayer = null;private MediaRecorder mRecorder = null;/** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);                //开始录音        startRecord = (Button)findViewById(R.id.startRecord);        startRecord.setText(R.string.startRecord);        //绑定监听器        startRecord.setOnClickListener(new startRecordListener());                //结束录音        stopRecord = (Button)findViewById(R.id.stopRecord);        stopRecord.setText(R.string.stopRecord);        stopRecord.setOnClickListener(new stopRecordListener());                //开始播放        startPlay = (Button)findViewById(R.id.startPlay);        startPlay.setText(R.string.startPlay);        //绑定监听器        startPlay.setOnClickListener(new startPlayListener());                //结束播放        stopPlay = (Button)findViewById(R.id.stopPlay);        stopPlay.setText(R.string.stopPlay);        stopPlay.setOnClickListener(new stopPlayListener());                //设置sdcard的路径        FileName = Environment.getExternalStorageDirectory().getAbsolutePath();        FileName += "/audiorecordtest.3gp";    }    //开始录音    class startRecordListener implements OnClickListener{@Overridepublic void onClick(View v) {// TODO Auto-generated method stub mRecorder = new MediaRecorder();     mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);     mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);     mRecorder.setOutputFile(FileName);     mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);     try {         mRecorder.prepare();     } catch (IOException e) {         Log.e(LOG_TAG, "prepare() failed");     }     mRecorder.start();}        }    //停止录音    class stopRecordListener implements OnClickListener{@Overridepublic void onClick(View v) {// TODO Auto-generated method stub mRecorder.stop();     mRecorder.release();     mRecorder = null;}        }    //播放录音    class startPlayListener implements OnClickListener{@Overridepublic void onClick(View v) {// TODO Auto-generated method stubmPlayer = new MediaPlayer();try{mPlayer.setDataSource(FileName);mPlayer.prepare();mPlayer.start();}catch(IOException e){Log.e(LOG_TAG,"播放失败");}}        }    //停止播放录音    class stopPlayListener implements OnClickListener{@Overridepublic void onClick(View v) {// TODO Auto-generated method stubmPlayer.release();        mPlayer = null;}        }}
 2.2 main.xml
<?xml version="1.0" encoding="utf-8"?>    
 2.3 Manifest.xml
<?xml version="1.0" encoding="utf-8"?>                                                                                                                   
 2.4 string.xml
<?xml version="1.0" encoding="utf-8"?>        Record开始录音结束录音开始播放结束播放


更多相关文章

  1. Android:为控件绑定监听器
  2. android ListView中添加ImageButton按钮并绑定事件
  3. TabLayout绑定Viewpager后不显示文字
  4. Android Button 控件绑定单击事件
  5. Windows Phone 7 不温不火学习之《ListBox 数据与Android ListVi
  6. Android笔记二十三.Android基于事件监听器处理机制

随机推荐

  1. Android应用程序绑定服务(bindService)的过
  2. 深入浅出Android之学习笔记
  3. Android 创建,验证和删除桌面快捷方式 (
  4. 2010.12.29——— android 可伸缩的listv
  5. Android 高斯模糊 RenderScript封装工具
  6. Android Studio 2.0 Instant Run问题
  7. Android MTK Launcher3安装三方apk,应用图
  8. Android弹性动画三种实现方式
  9. Android studio使用lambda表达式
  10. Android(安卓)APP性能优化之 ---- APK瘦