Android编程开发录音和播放录音简单示例
本文实例讲述了Android编程开发录音和播放录音的方法。分享给大家供大家参考,具体如下:
/* *Theapplicationneedstohavethepermissiontowritetoexternalstorage *iftheoutputfileiswrittentotheexternalstorage,andalsothe *permissiontorecordaudio.Thesepermissionsmustbesetinthe *application'sAndroidManifest.xmlfile,withsomethinglike: * *<uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/> *<uses-permissionandroid:name="android.permission.RECORD_AUDIO"/> * */ packagecom.android.audiorecordtest; importandroid.app.Activity; importandroid.widget.LinearLayout; importandroid.os.Bundle; importandroid.os.Environment; importandroid.view.ViewGroup; importandroid.widget.Button; importandroid.view.View; importandroid.view.View.OnClickListener; importandroid.content.Context; importandroid.util.Log; importandroid.media.MediaRecorder; importandroid.media.MediaPlayer; importjava.io.IOException; publicclassAudioRecordTestextendsActivity { privatestaticfinalStringLOG_TAG="AudioRecordTest"; privatestaticStringmFileName=null; privateRecordButtonmRecordButton=null; privateMediaRecordermRecorder=null; privatePlayButtonmPlayButton=null; privateMediaPlayermPlayer=null; privatevoidonRecord(booleanstart){ if(start){ startRecording(); }else{ stopRecording(); } } privatevoidonPlay(booleanstart){ if(start){ startPlaying(); }else{ stopPlaying(); } } privatevoidstartPlaying(){ mPlayer=newMediaPlayer(); try{ mPlayer.setDataSource(mFileName); mPlayer.prepare(); mPlayer.start(); }catch(IOExceptione){ Log.e(LOG_TAG,"prepare()failed"); } } privatevoidstopPlaying(){ mPlayer.release(); mPlayer=null; } privatevoidstartRecording(){ mRecorder=newMediaRecorder(); mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); mRecorder.setOutputFile(mFileName); mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); try{ mRecorder.prepare(); }catch(IOExceptione){ Log.e(LOG_TAG,"prepare()failed"); } mRecorder.start(); } privatevoidstopRecording(){ mRecorder.stop(); mRecorder.release(); mRecorder=null; } classRecordButtonextendsButton{ booleanmStartRecording=true; OnClickListenerclicker=newOnClickListener(){ publicvoidonClick(Viewv){ onRecord(mStartRecording); if(mStartRecording){ setText("Stoprecording"); }else{ setText("Startrecording"); } mStartRecording=!mStartRecording; } }; publicRecordButton(Contextctx){ super(ctx); setText("Startrecording"); setOnClickListener(clicker); } } classPlayButtonextendsButton{ booleanmStartPlaying=true; OnClickListenerclicker=newOnClickListener(){ publicvoidonClick(Viewv){ onPlay(mStartPlaying); if(mStartPlaying){ setText("Stopplaying"); }else{ setText("Startplaying"); } mStartPlaying=!mStartPlaying; } }; publicPlayButton(Contextctx){ super(ctx); setText("Startplaying"); setOnClickListener(clicker); } } publicAudioRecordTest(){ mFileName=Environment.getExternalStorageDirectory().getAbsolutePath(); mFileName+="/audiorecordtest.3gp"; } @Override publicvoidonCreate(Bundleicicle){ super.onCreate(icicle); LinearLayoutll=newLinearLayout(this); mRecordButton=newRecordButton(this); ll.addView(mRecordButton, newLinearLayout.LayoutParams( ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT, 0)); mPlayButton=newPlayButton(this); ll.addView(mPlayButton, newLinearLayout.LayoutParams( ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT, 0)); setContentView(ll); } @Override publicvoidonPause(){ super.onPause(); if(mRecorder!=null){ mRecorder.release(); mRecorder=null; } if(mPlayer!=null){ mPlayer.release(); mPlayer=null; } } }
更多关于Android相关内容感兴趣的读者可查看本站专题:《Android多媒体操作技巧汇总(音频,视频,录音等)》、《Android开发入门与进阶教程》、《Android视图View技巧总结》、《Android编程之activity操作技巧总结》、《Android操作SQLite数据库技巧总结》、《Android操作json格式数据技巧总结》、《Android数据库操作技巧总结》、《Android文件操作技巧汇总》、《Android编程开发之SD卡操作方法汇总》、《Android资源操作技巧汇总》及《Android控件用法总结》
希望本文所述对大家Android程序设计有所帮助。