package Ġbr . com . al iss ont fb . mult if ile picker . audio Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . media . MediaPlayer Ċ import Ġandroid . media . Media Recorder Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . TextView Ċ import Ġjava . io . File Ċ import Ġjava . io . IOException ĊĊ Ċ class ĠAudio Recorder ( private Ġval Ġplay : ĠView ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġrec : ĠView , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġstop : ĠView , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval ĠoutputFile : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġsave : Ġ( File ) Ġ-> ĠUnit , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġtimer : Ġ( String ) Ġ-> ĠUnit ) Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġmy Audio Recorder : ĠMedia Recorder ? ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġmy Audio Recorder Ġ= ĠMedia Recorder () ĊĠĠĠĠĠĠĠ Ġval Ġtime : ĠTimer Async ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmy Audio Recorder !!. set Audio Source ( Media Recorder . Audio Source . MIC ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmy Audio Recorder !!. setOutput Format ( Media Recorder . Output Format . TH REE _ G PP ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmy Audio Recorder !!. set Audio Encoder ( Media Recorder . Output Format . AM R _ NB ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmy Audio Recorder !!. setOutput File ( outputFile ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstop . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplay ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtime Ġ= ĠTimer Async Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtimer ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow Ġe ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġrec . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime . start () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmy Audio Recorder !!. prepare () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmy Audio Recorder !!. start () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ise : ĠIllegalStateException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow Ġi se ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( io e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow Ġio e ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrec . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstop . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġstop . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmy Audio Recorder !!. stop () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmy Audio Recorder !!. release () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmy Audio Recorder Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrec . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstop . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplay ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtime . stop () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsave ( getFile ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġplay ?. setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmedia Player Ġ= ĠMedia Player () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmedia Player . set DataSource ( outputFile ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmedia Player . prepare () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmedia Player . start () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow Ġe ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠgetFile () Ġ= ĠFile ( outputFile ) Ċ Ċ }