Android中有自带的音频录制程序,我们可以通过指定一个Action为MediaStore.Audio.Media.RECORD_SOUND_ACTION的Intent来

启动它就可以了。然后在onActivityResult()方法中,获取Intent的Data,就是录制的音频对应的URI。

 

代码:

 
  1. package demo.camera;  
  2. import android.app.Activity;  
  3. import android.content.Intent;  
  4. import android.net.Uri;  
  5. import android.os.Bundle;  
  6. import android.provider.MediaStore;  
  7. import android.view.View;  
  8. import android.widget.Toast;  
  9. /**  
  10.  * 被实例演示如何调用Android自带的应用来完成Audio的录入  
  11.  * 其实很简单,我们需要指定一个MediaStore.Audio.Media.RECORD_SOUND_ACTION的Action来启动就可以  
  12.  * 返回的Data数据就是我们录制的音频的URI了  
  13.  *   
  14.  * 通过上面这种方式,灵活性不够高,我们可以利用MediaRecorder类来实现自己的音频录制程序  
  15.  * MediaRecorder既可以用来录制音频,也可以用来录制视频  
  16.  * 创建了一个MediaRecorder实例后,需要调用setAudioSource和setAudioEncoder来初始化  
  17.  * 通常情况下,在准备录制前,我们还需要调用setOutputFormat()方法来决定使用的音频格式,同时调用  
  18.  * setOutputFile()来指定存放录制内容的文件  
  19.  *   
  20.  * 这几个方法的调用顺序是:setAudioSource,setOutputFormat,setAudioEncoder,setOutputFile  
  21.  *   
  22.  *   
  23.  *   
  24.  * @author Administrator  
  25.  *  
  26.  */ 
  27. public class AudioRecordDemo extends Activity {  
  28.       
  29.       
  30.     public void onCreate(Bundle savedInstanceState){  
  31.         super.onCreate(savedInstanceState);  
  32.         setContentView(R.layout.audio_record);  
  33.     }  
  34.       
  35.     public void onActivityResult(int requestCode, int resultCode, Intent data){  
  36.         //super.onActivityResult(requestCode, resultCode, data);  
  37.         //这里我们就可以获取到刚刚录制的音频的Uri,可以进行播放等操作,这里显示返回的Uri  
  38.         if(resultCode == RESULT_OK){  
  39.             Uri audioPath = data.getData();  
  40.             Toast.makeText(this, audioPath.toString(), Toast.LENGTH_LONG).show();  
  41.         }  
  42.     }  
  43.       
  44.     public void onClick(View v){  
  45.         int id = v.getId();  
  46.         switch(id){  
  47.         case R.id.btn1:  
  48.             //调用Android自带的音频录制应用  
  49.             Intent intent = new Intent(MediaStore.Audio.Media.RECORD_SOUND_ACTION);  
  50.             startActivityForResult(intent, 0);  
  51.             break;  
  52.         case R.id.btn2:  
  53.             //通过MediaRecorder类来实现自己的音频录制程序  
  54.             Intent intent2 = new Intent();  
  55.             intent2.setClass(this, MyAudioRecord.class);  
  56.             startActivityForResult(intent2, 1);  
  57.             break;  
  58.         case R.id.btn3:  
  59.             //通过AudioRecord类实现自己的音频录制程序  
  60.             Intent intent3 = new Intent();  
  61.             intent3.setClass(this, MyAudioRecord2.class);  
  62.             startActivityForResult(intent3, 2);  
  63.             break;  
  64.         }  
  65.     }  
  66. }