android 录音和播放录音
2014-09-24 10:19
295 查看
今天来一个简单的录音功能,主要流程就是,录音-保存文件-播放录音。过程主要就是这个比较简单,这里就不啰嗦了,直接上代码,代码里面我已经注释的很清楚了。
主要代码都在这里了,我就不上demo工程了。这只是录音的基础功能,之后再看看有没有时间,再写一个深入一点的分析。这里记得要在配置文件里面加上这两个权限,
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
一个是读SD卡权限,一个是调用录音硬件设备的权限。暂时就这样吧!!!!!有错欢迎指出.........
工程demo
public class MainActivity extends ActionBarActivity { /**录音*/ private Button record_Voice_Bt; /**停止录音*/ private Button stoprecord_Voice_Bt; /**播放录音*/ private Button play_Voice_Bt; /**停止播放录音*/ private Button stopplay_Voice_Bt; /**录音控件*/ private MediaRecorder mediaRecorder = null; /**播放录音控件*/ private MediaPlayer play = null; /**路劲名*/ private String file; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_main); record_Voice_Bt = (Button) findViewById(R.id.RecordVoiceID); play_Voice_Bt = (Button)findViewById(R.id.PlayVoiceID); stoprecord_Voice_Bt = (Button) findViewById(R.id.StopRecordVoiceID); stopplay_Voice_Bt = (Button) findViewById(R.id.stopPlayVoiceID); file = Environment.getExternalStorageDirectory().getAbsolutePath(); file += "/audiorecor.3gp"; recordVoic();//录音 stoprecordVoic();//停止录音 PlayVoice();//播放录音 stopPlayVoice();//停止播放 } /**停止播放录音*/ private void stopPlayVoice() { stopplay_Voice_Bt.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { if(play != null){ play.release();//停止播放录音,把Media播放器释放即可 play = null; Toast.makeText(MainActivity.this, "停止播放", 0).show(); } } }); } /**停止录音*/ private void stoprecordVoic() { stoprecord_Voice_Bt.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { if(mediaRecorder != null){ mediaRecorder.stop(); //停止录音 mediaRecorder.reset(); // 在释放资源时,必须要重置一下,不然下一步释放时可能会出错 mediaRecorder.release(); // 这个是否录音控件的,不然会一直占据资源 Toast.makeText(MainActivity.this, "停止录音", 0).show(); } } }); } /**播放录音*/ private void PlayVoice() { play_Voice_Bt.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { play = new MediaPlayer(); try { play.setDataSource(file);//读原录音文件,这里传入路径 play.prepare();//准备播放录音,这里系统会开始去解析录音文件 play.start();//开始播放 }catch (IOException e) { stopPlayVoice(); e.printStackTrace(); } } }); } /**开始录音*/ private void recordVoic() { record_Voice_Bt.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { mediaRecorder = null; mediaRecorder = new MediaRecorder(); //设置录音的编码格式,即数据源的格式,这里设置什么格式主要根据录音的用途来判断 mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); //设置录音文件的格式,这里是指文件的后缀名格式,这个设置的3GP mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); //设置录音的解码格式,这个必须在setOutputFile方法前设置,否则无效 mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); mediaRecorder.setOutputFile(file);//设置录音文件的输出路径 try { mediaRecorder.prepare(); } catch (IllegalStateException e) { stoprecordVoic(); Log.e("", "==========录音出错了=============="); e.printStackTrace(); } catch (IOException e) { stoprecordVoic(); Log.e("", "==========录音出错了=============="); e.printStackTrace(); } mediaRecorder.start(); //开始录音 Toast.makeText(MainActivity.this, "开始录音", 0).show(); } }); } }
主要代码都在这里了,我就不上demo工程了。这只是录音的基础功能,之后再看看有没有时间,再写一个深入一点的分析。这里记得要在配置文件里面加上这两个权限,
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
一个是读SD卡权限,一个是调用录音硬件设备的权限。暂时就这样吧!!!!!有错欢迎指出.........
工程demo
相关文章推荐
- Android Media Recorder录音播放源代码
- Android Media Recorder录音播放源代码
- iphone,android,web,wp7同时录音及播放-m4a格式
- Android 实时录音和回放,边录音边播放 (KTV回音效果)
- Android 录音和播放
- android VideoView播放视频,MediaRecorder 录音
- Android录音及播放功能实现
- android开发录音和播放录音
- [置顶] Android--实现自制录音/播放录音程序
- Android 实时录音和回放,边录音边播放 (KTV回音效果)
- android开发录音和播放录音的例子
- Android录音与播放
- Android录音与播放
- android开发(18) 调用手机的麦克风录音,并播放。
- [Android] 录音与播放录音实现
- iphone,android,web,wp7同时录音及播放-m4a格式
- Android录音与播放
- JNI在Android开发中的应用之--用AudioRecord录音,用AudioTrack播放声音.
- Android 录音、播放功能的实现
- Android 录音和播放