码迷,mamicode.com
首页 > 移动开发 > 详细

Android(java)学习笔记144:Android音视频录制类MediaRecorder用法举例

时间:2015-08-07 23:40:34      阅读:296      评论:0      收藏:0      [点我收藏+]

标签:

Android语音录制可以通过MediaRecorderAudioRecorder
MediaRecorder本来是多媒体录制控件,可以同时录制视频和语音,当不指定视频源时就只录制语音(默认录制语言);AudioRecorder只能录制语音
二者录制的区别在于,MediaRecorder固定了语音的编码格式,具体平台支持类型可以在http://developer.android.com/guide/appendix/media-formats.html这里查看,而且使用时指定输出文件,在录制的同时系统将语音数据写入文件。AudioRecorder输出的是pcm,即原始音频数据,使用者需要自己读取这些数据,这样的好处是可以根据需要边录制边对音频数据处理读取的同时也可以保存到文件进行存储

语音的播放可以使用MediaPlayer和AudioTracker,与上面的对应,MediaPlayer可以播放各种多媒体文件,而AudioTracker只能播放pcm数据,使用者手动将数据连续写入进行播放

MediaRecorder的使用

  1. private void startRecording() {  
  2.         mRecorder = new MediaRecorder();  
  3.         mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);  //设置音频资源
  4.         mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);  //设置输出文件格式
  5.         mRecorder.setOutputFile(mFileName);  
  6.         mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);  //设置音频编码
  7.   
  8.   
  9.         try {  
  10.             mRecorder.prepare();  
  11.         } catch (IOException e) {  
  12.             Log.e(LOG_TAG, "prepare() failed");  
  13.         }  
  14.   
  15.   
  16.         mRecorder.start();  
  17. }  

AudioRecorder录制语音

 

    1. int suggestBufferSize = AudioRecord.getMinBufferSize(mSampleRate,  
    2.                 mChannelConfig, mAudioFormat);  
    3. mAudioRecord = new AudioRecord(AudioSource.MIC, mSampleRate,  
    4.                 mChannelConfig, mAudioFormat, suggestBufferSize);  
    5. mAudioRecorder.startRecording();  
    6. byte[] inByteBuf = new byte[BUF_SIZE]  
    7. while (runFlag) {  
    8.     int readSize = mAudioRecord.read(inByteBuf, 0, inByteBuf.length);  
    9. }  
    10. mAudioRecorder.stop();  
    11. mAudioRecord.release();  

 

Android(java)学习笔记144:Android音视频录制类MediaRecorder用法举例

标签:

原文地址:http://www.cnblogs.com/hebao0514/p/4711971.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!