android之通过MediaRecorder进行手机录音

来源:互联网 发布:店铺广告牌制作软件 编辑:程序博客网 时间:2024/05/01 14:12

android之通过MediaRecorder进行手机录音


直接给上个详细的解说代码:

[java:nogutter] view plaincopy
  1. package cn.com.chenzheng_java.media;  
  2.   
  3. import java.io.IOException;  
  4.   
  5. import android.app.Activity;  
  6. import android.media.MediaRecorder;  
  7. import android.os.Bundle;  
  8. /** 
  9.  * @description 对通过android系统手机进行录音的一点说明测试 
  10.  * @author chenzheng_java 
  11.  * @since 2011/03/23 
  12.  */  
  13. public class MediaRecordActivity extends Activity {  
  14.       
  15.     MediaRecorder mediaRecorder ;  
  16.     @Override  
  17.     public void onCreate(Bundle savedInstanceState) {  
  18.         super.onCreate(savedInstanceState);  
  19.         setContentView(R.layout.main);  
  20.          
  21.         mediaRecorder = new MediaRecorder();  
  22.         record();  
  23.           
  24.     }  
  25.       
  26.     /** 
  27.      * 开始录制 
  28.      */  
  29.     private void record(){  
  30.         /** 
  31.          * mediaRecorder.setAudioSource设置声音来源。 
  32.          * MediaRecorder.AudioSource这个内部类详细的介绍了声音来源。 
  33.          * 该类中有许多音频来源,不过最主要使用的还是手机上的麦克风,MediaRecorder.AudioSource.MIC 
  34.          */  
  35.         mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);  
  36.         /** 
  37.          * mediaRecorder.setOutputFormat代表输出文件的格式。该语句必须在setAudioSource之后,在prepare之前。 
  38.          * OutputFormat内部类,定义了音频输出的格式,主要包含MPEG_4、THREE_GPP、RAW_AMR……等。 
  39.          */  
  40.         mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);  
  41.         /** 
  42.          * mediaRecorder.setAddioEncoder()方法可以设置音频的编码 
  43.          * AudioEncoder内部类详细定义了两种编码:AudioEncoder.DEFAULT、AudioEncoder.AMR_NB 
  44.          */  
  45.         mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);  
  46.         /** 
  47.          * 设置录音之后,保存音频文件的位置 
  48.          */  
  49.         mediaRecorder.setOutputFile("file:///sdcard/myvido/a.3pg");  
  50.           
  51.         /** 
  52.          * 调用start开始录音之前,一定要调用prepare方法。 
  53.          */  
  54.         try {  
  55.             mediaRecorder.prepare();  
  56.             mediaRecorder.start();  
  57.         } catch (IllegalStateException e) {  
  58.             e.printStackTrace();  
  59.         } catch (IOException e) {  
  60.             e.printStackTrace();  
  61.         }  
  62.           
  63.     }  
  64.       
  65.     /*** 
  66.      * 此外,还有和MediaRecorder有关的几个参数与方法,我们一起来看一下: 
  67.      * sampleRateInHz :音频的采样频率,每秒钟能够采样的次数,采样率越高,音质越高。 
  68.      * 给出的实例是44100、22050、11025但不限于这几个参数。例如要采集低质量的音频就可以使用4000、8000等低采样率 
  69.      *  
  70.      * channelConfig :声道设置:android支持双声道立体声和单声道。MONO单声道,STEREO立体声 
  71.      *  
  72.      * recorder.stop();停止录音 
  73.      * recorder.reset();  重置录音 ,会重置到setAudioSource这一步 
  74.      * recorder.release(); 解除对录音资源的占用 
  75.      */  
  76.       
  77.       
  78.       
  79.       
  80. }  
 

这里,一定要注意一点,那就是如果我们想要录音的话,那么首先得添加录音权限到AndroidManiferst.xml中:

<uses-permission android:name="android.permission.RECORD_AUDIO"></uses-permission>

原创粉丝点击