-
7/5/2015 AndroidAudioCaptureExample|ExamplesJavaCodeGeeks
http://examples.javacodegeeks.com/android/core/media/mediarecorder/androidaudiocaptureexample/
1/13
HomeAndroidcoremediaMediaRecorderAndroidAudioCaptureExample
ABOUT KATERINA
ZAMANIKaterinahasgraduatedfromtheDepartmentofInformaticsandTelecommunicationsinNationalandKapodistrianUniversityofAthens(NKUA)andsheattendsMSccoursesinAdvancedInformationSystemsatthesamedepartment.Currently,hermainacademicinterestsfocusonwebapplications,mobiledevelopment,softwareengineering,databasesandtelecommunications.
Android Audio Capture Example Postedby:KaterinaZamani
inMediaRecorder January3rd,2014
Androiddevicesareequippedwithhardwareinputdevicessuchasmicrophone,cameraetc,fromwhichwecancaptureaudioorvideoinourapplications.ThemostcommonclassthatisusedisMediaRecorder
,whichrecordsaudioandvideo.
Inthisexample,wearegoingtocaptureaudiofromthedevicesmicrophone,storeittothedeviceandthenplayitbackand/orstopplayingit.
Forthistutorial,wewillusethefollowingtoolsinaWindows64bitplatform:
1. JDK1.7
2. Eclipse4.2Juno
3. AndroidSDK4.4
1.CreateaNewAndroidApplicationProjectOpenEclipseIDEandgotoFileNewProjectAndroidApplicationProject.
Specifythenameoftheapplication,theprojectandthepackage.Also,set10APIorlargerastheminimumRequiredSDK,inordertosupporttheclasseswearegoingtouse.ThenpressNextbutton.
NEWSLETTER
104082insidersarealreadyenjoyingweeklyupdatesandcomplimentarywhitepapers!JointhemnowtogainexclusiveaccesstothelatestnewsintheJavaworld,aswellasinsightsaboutAndroid,Scala,Groovyandotherrelatedtechnologies.
Emailaddress:
Youremailaddress
Signup
JOIN US
ANDROID CORE JAVA DESKTOP JAVA ENTERPRISE JAVA JAVA BASICS
Search... News KnowledgeBase JobBoard About
-
7/5/2015 AndroidAudioCaptureExample|ExamplesJavaCodeGeeks
http://examples.javacodegeeks.com/android/core/media/mediarecorder/androidaudiocaptureexample/
2/13
Inthenextwindow,theCreateActivityoptionshouldbechecked.Thenewcreatedactivitywillbethemainactivityofyourproject.ThenclickNext.
InConfigureLauncherIconwindowyoushouldchoosetheiconyouwanttohaveinyourapp.Wewillusethedefaulticonofandroid,soclickNext.
With 1,240,600uniquevisitorsandover500
authorsweareplacedamongthetopJavarelatedsitesaround.Constantlybeingonthelookoutforpartnersweencourageyoutojoinus.SoIfyouhaveablogwith
uniqueandinterestingcontentthenyoushouldcheckoutourJCGpartnersprogram.YoucanalsobeaguestwriterforJavaCodeGeeksandhoneyourwritingskills!
CAREER OPPORTUNITIES
What:
title,keywords
Where:
city,state,orzip
FindJobs
Sr.SoftwareEngineerCEIVABurbank,CA
JavaDeveloperInnerWorkingsChicago,IL
JavaportalaccessingsqlDBHouston,TX
FederalJavaWebDeveloper,Analyst...AccentureArlington,VA
SoftwareEngineerJavaGoDaddyScottsdale,AZ
TechnologyControllersTechnology...GoldmanSachsJerseyCity,NJ
SoftwareEngineer(Java)TrustwaveGreenwoodVillage,CO
ITAnalyst/ProgrammerJobMayoClinicRochester,MN
JavaApplicationDeveloperUniversityofCalifornia...Irvine,CA
JavaDeveloper/EngineerCoWellsFargoNewYork,NY12345678910Next
-
7/5/2015 AndroidAudioCaptureExample|ExamplesJavaCodeGeeks
http://examples.javacodegeeks.com/android/core/media/mediarecorder/androidaudiocaptureexample/
3/13
SelecttheBlankActivityoptionandpressNext.
YouhavetospecifyanameforthenewActivityandanameforthelayoutdescriptionofyourapp.The.xmlfileforthelayoutwillautomaticallybecreatedintheres/layout
folder.Finally,pressFinish.
jobsby
-
7/5/2015 AndroidAudioCaptureExample|ExamplesJavaCodeGeeks
http://examples.javacodegeeks.com/android/core/media/mediarecorder/androidaudiocaptureexample/
4/13
Youcanseethefinalstructureofthecreatedprojectintheimagebelow.
2.CreatethelayoutoftheMainActivityInthisapplication,wewanttostartandstoprecording,aswellasstartandstopplayingtherecordingsound.ForthisreasonwearegoingtoaddfourdifferentButtons
inthelayout,whereeachoneenablestheappropriatefunctionality.Also,aTextView
willbeusedtoshowusthecurrentsituation.
-
7/5/2015 AndroidAudioCaptureExample|ExamplesJavaCodeGeeks
http://examples.javacodegeeks.com/android/core/media/mediarecorder/androidaudiocaptureexample/
5/13
Openres/layout/activity_main.xml
gotothexmltabandpastethefollowing.
activity_main.xml:
NoticethatweaddedanImageView
whereitscontentisapictureofaudiorecording,thatAndroidprovideusthroughthedrawable.
3.CodetheMainActivityForaudiorecord,weshouldcreateaninstanceofMediaRecorder
classandsetsomeinformationaboutthesourceandtheoutputfile.WeuseMediaRecorder.AudioSource.MIC
inordertosetthemicrophoneofthedeviceastheaudiosource.Inaddition,wehavetosettheformatandthenameoftheoutputfile,as
01 06 07 14 15 23 24 30 31 36 37 44 45 46 47 53 54 60 61 68 69
70
MasterJBossWildFlywithaFREEPackteBook!
-
7/5/2015 AndroidAudioCaptureExample|ExamplesJavaCodeGeeks
http://examples.javacodegeeks.com/android/core/media/mediarecorder/androidaudiocaptureexample/
6/13
wellastheaudioencoderfortheoutputfileinordertocontainanaudiotrack.Noticethatinourexample,wealsosetthepaththattheoutputfilewillbelocated.
Beforestartingtherecordingisveryimportanttopreparecapturingandencodingdata.Forthisreason,prepare()
andstart()
methodsarecalled.Itisimportanttomentionthatprepare()
methodmustbecalledbeforestart()
method,butafterthesettingofsource,formatandencodinginformation.Incontrast,tostopsoundrecordingstop()
methodshouldbecalled.Afterthat,iftheinstanceofMediaRecorder
isnotusedanymore,itisrecommendedtofreetheresource,bycallingrelease()
method.Ifyounoticeinthecodebelow,appropriateExceptions
arecalledforthespecificmethods.
Inourexample,wewanttoplaybackthesoundwejustrecorded,sowecreateaninstanceofMediaPlayer
class.Afterspecifyingthesourcefilethatwewanttouse,prepare()
andstart()
methodsarecalledinordertostartplayingtheaudiotrack.Respectively,stop()
andrelease()
methodsarecalledtostoptheplaybackandtofreetheMediaPlayer
objectresources.
Opensrc/com.javacodegeeks.android.audiocapturetest/MaainActivity.java
fileandpastethecodebelow.
MainActivity.java:
001 packagecom.javacodegeeks.android.audiocapturetest;002 003
importjava.io.IOException;004 importandroid.media.MediaPlayer;005
importandroid.media.MediaRecorder;006 importandroid.os.Bundle;007
importandroid.os.Environment;008 importandroid.app.Activity;009
importandroid.view.View;010
importandroid.view.View.OnClickListener;011
importandroid.widget.Button;012 importandroid.widget.TextView;013
importandroid.widget.Toast;014 015
publicclassMainActivityextendsActivity{016 017
privateMediaRecordermyRecorder;018 privateMediaPlayermyPlayer;019
privateStringoutputFile=null;
-
7/5/2015 AndroidAudioCaptureExample|ExamplesJavaCodeGeeks
http://examples.javacodegeeks.com/android/core/media/mediarecorder/androidaudiocaptureexample/
7/13
020 privateButtonstartBtn;021 privateButtonstopBtn;022
privateButtonplayBtn;023 privateButtonstopPlayBtn;024
privateTextViewtext;025 026 @Override027
protectedvoidonCreate(BundlesavedInstanceState){028
super.onCreate(savedInstanceState);029
setContentView(R.layout.activity_main);030 031
text=(TextView)findViewById(R.id.text1);032 //storeittosdcard033
outputFile=Environment.getExternalStorageDirectory().034
getAbsolutePath()+"/javacodegeeksRecording.3gpp";035 036
myRecorder=newMediaRecorder();037
myRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);038
myRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);039
myRecorder.setAudioEncoder(MediaRecorder.OutputFormat.AMR_NB);040
myRecorder.setOutputFile(outputFile);041 042
startBtn=(Button)findViewById(R.id.start);043
startBtn.setOnClickListener(newOnClickListener(){044 045
@Override046 publicvoidonClick(Viewv){047
//TODOAutogeneratedmethodstub048 start(v);049 }050 });051 052
stopBtn=(Button)findViewById(R.id.stop);053
stopBtn.setOnClickListener(newOnClickListener(){054 055
@Override056 publicvoidonClick(Viewv){057
//TODOAutogeneratedmethodstub058 stop(v);059 }060 });061 062
playBtn=(Button)findViewById(R.id.play);063
playBtn.setOnClickListener(newOnClickListener(){064 065
@Override066 publicvoidonClick(Viewv){067
//TODOAutogeneratedmethodstub068 play(v);069 }070 });071 072
stopPlayBtn=(Button)findViewById(R.id.stopPlay);073
stopPlayBtn.setOnClickListener(newOnClickListener(){074 075
@Override076 publicvoidonClick(Viewv){077
//TODOAutogeneratedmethodstub078 stopPlay(v);079 }080 });081 }082
083 publicvoidstart(Viewview){084 try{085 myRecorder.prepare();086
myRecorder.start();087 }catch(IllegalStateExceptione){088
//start:itiscalledbeforeprepare()089
//prepare:itiscalledafterstart()orbeforesetOutputFormat()090
e.printStackTrace();091 }catch(IOExceptione){092
//prepare()fails093 e.printStackTrace();094 }095 096
text.setText("RecordingPoint:Recording");097
startBtn.setEnabled(false);098 stopBtn.setEnabled(true);099 100
Toast.makeText(getApplicationContext(),"Startrecording...",101
Toast.LENGTH_SHORT).show();102 }103 104
publicvoidstop(Viewview){105 try{106 myRecorder.stop();107
myRecorder.release();108 myRecorder=null;109 110
stopBtn.setEnabled(false);111 playBtn.setEnabled(true);112
text.setText("RecordingPoint:Stoprecording");113 114
Toast.makeText(getApplicationContext(),"Stoprecording...",115
Toast.LENGTH_SHORT).show();116 }catch(IllegalStateExceptione){117
//itiscalledbeforestart()118 e.printStackTrace();119
}catch(RuntimeExceptione){120
//novalidaudio/videodatahasbeenreceived121 e.printStackTrace();122
}123 }
-
7/5/2015 AndroidAudioCaptureExample|ExamplesJavaCodeGeeks
http://examples.javacodegeeks.com/android/core/media/mediarecorder/androidaudiocaptureexample/
8/13
4.SetthepermissionsWehavetodeclarethepermissionsintheAndroidManifest.xml
fileofourproject.WRITE_EXTERNAL_STORAGE
istowritetheoutputfileintotheexternalstorageofourdevice(sdcard).RECORD_AUDIO
isnecessaryforMediaRecorder
classtocaptureaudio.
OpenAndroidManifest.xml
fileandpastethefollowingcode.
AndroidManifest.xml:
124 125 publicvoidplay(Viewview){126 try{127
myPlayer=newMediaPlayer();128
myPlayer.setDataSource(outputFile);129 myPlayer.prepare();130
myPlayer.start();131 132 playBtn.setEnabled(false);133
stopPlayBtn.setEnabled(true);134
text.setText("RecordingPoint:Playing");135 136
Toast.makeText(getApplicationContext(),"Startplaytherecording...",137
Toast.LENGTH_SHORT).show();138 }catch(Exceptione){139
//TODOAutogeneratedcatchblock140 e.printStackTrace();141 }142 }143
144 publicvoidstopPlay(Viewview){145 try{146 if(myPlayer!=null){147
myPlayer.stop();148 myPlayer.release();149 myPlayer=null;150
playBtn.setEnabled(true);151 stopPlayBtn.setEnabled(false);152
text.setText("RecordingPoint:Stopplaying");153 154
Toast.makeText(getApplicationContext(),"Stopplayingtherecording...",155
Toast.LENGTH_SHORT).show();156 }157 }catch(Exceptione){158
//TODOAutogeneratedcatchblock159 e.printStackTrace();160 }161 }162
163 }
01 02 06 07 10 11 12 13 14 19 22 23 24 25 26 27 28
-
7/5/2015 AndroidAudioCaptureExample|ExamplesJavaCodeGeeks
http://examples.javacodegeeks.com/android/core/media/mediarecorder/androidaudiocaptureexample/
9/13
5.RuntheapplicationInthisexample,wecantusetheandroidemulatortorunourapplication,becauseishasnttheabilitytocaptureaudio.ForthisreasonwehavetoconnectEclipsewithourAndroiddeviceandruntheapplicationthroughit.
So,connectyourAndroiddevicewithyourpcthroughUSB.DontforgettoenableUSBdebuggingoption,byfollowingSettingsApplicationsDevelopmentpath.
ThengotoEclipse,rightclickonourprojectRunasRunConfigurations.
Inthepopupwindowchoosethecurrentproject,gototheTarget
tabandchooseAlwaysprompttopickdeviceoption.ThenclickNext.
FinallychoosetherunningAndroiddeviceandpressOK,asshowninthenextpicture.
TheappwillbeloadedinyourAndroiddevice,asyoucanseeintheimagebelow.
29 30
-
7/5/2015 AndroidAudioCaptureExample|ExamplesJavaCodeGeeks
http://examples.javacodegeeks.com/android/core/media/mediarecorder/androidaudiocaptureexample/
10/13
Letspressstartbuttoninordertostartaudiorecording.Asyoucanseeinthepicturebelow,aToast
appearsandtheTextView
issettoRecording.
Nowclickstopbutton.Theaudiotrackwillautomaticallybestoredintoyourexternalcard.Noticethatstopbuttonisnotclickableanymore.
-
7/5/2015 AndroidAudioCaptureExample|ExamplesJavaCodeGeeks
http://examples.javacodegeeks.com/android/core/media/mediarecorder/androidaudiocaptureexample/
11/13
Ifyouwanttolistentotheaudioyoujustrecorded,pressplaybutton.TheTextView
willchangeagainandaToast
messagewillbeenabled.
Finally,pressstopplayingbuttonbeforetheaudiotrackends.Thismove,willstoptheaudioandwillenableplaybuttonagain,inordertolistentoitagain.
-
7/5/2015 AndroidAudioCaptureExample|ExamplesJavaCodeGeeks
http://examples.javacodegeeks.com/android/core/media/mediarecorder/androidaudiocaptureexample/
12/13
DownloadEclipseProjectThiswasanexampleofAudioCaptureinAndroid.DownloadtheEclipseProjectofthisexample:AudioCaptureTest.zip
Taggedwith: MEDIAPLAYER
DoyouwanttoknowhowtodevelopyourskillsettobecomeaJavaRockstar?
SubscribetoournewslettertostartRockingrightnow!TogetyoustartedwegiveyouourbestsellingeBooksforFREE!1.JPAMiniBook2.JVMTroubleshootingGuide3.JUnitTutorialforUnitTesting4.JavaAnnotationsTutorial5.JavaInterviewQuestions6.SpringInterviewQuestions7.AndroidUIDesign
andmanymore....
Emailaddress:
Youremailaddress
Signup
-
7/5/2015 AndroidAudioCaptureExample|ExamplesJavaCodeGeeks
http://examples.javacodegeeks.com/android/core/media/mediarecorder/androidaudiocaptureexample/
13/13
KNOWLEDGE BASE
Academy
Library
News
Resources
Tutorials
Whitepapers
THE CODE GEEKS NETWORK
.NETCodeGeeks
JavaCodeGeeks
WebCodeGeeks
HALL OF FAME
AndroidAlertDialogExample
AndroidOnClickListenerExample
HowtoconvertCharactertoStringandaStringtoCharacterArrayinJava
JavaInheritanceexample
JavawritetoFileExample
java.io.FileNotFoundExceptionHowtosolveFileNotFoundException
java.lang.arrayindexoutofboundsexceptionHowtohandleArrayIndexOutOfBoundsException
java.lang.NoClassDefFoundErrorHowtosolveNoClassDefFoundError
JSONExampleWithJersey+Jackson
SpringJdbcTemplateExample
ABOUT JAVA CODE GEEKS
JCGs(JavaCodeGeeks)isanindependentonlinecommunityfocusedoncreatingtheultimateJavatoJavadevelopersresourcecentertargetedatthetechnicalarchitect,technicalteamlead(seniordeveloper),projectmanagerandjuniordevelopersalike.JCGsservetheJava,SOA,AgileandTelecomcommunitieswithdailynewswrittenbydomainexperts,articles,tutorials,reviews,announcements,codesnippetsandopensourceprojects.
DISCLAIMER
AlltrademarksandregisteredtrademarksappearingonExamplesJavaCodeGeeksarethepropertyoftheirrespectiveowners.JavaisatrademarkorregisteredtrademarkofOracleCorporationintheUnitedStatesandothercountries.ExamplesJavaCodeGeeksisnotconnectedtoOracleCorporationandisnotsponsoredbyOracleCorporation.
ExamplesJavaCodeGeeksandallcontentcopyright20102015,ExelixisMediaP.C.|TermsofUse|PrivacyPolicy|Contact