In this post, I will show how to build audio recorder in android. MediaRecorder class gives us various methods that helps us to manage audio recording states. Methods such as start(), stop(), etc. does their basic job while methods such as setOutputFile() helps to stop output file in sd - card.
Refer the below link for complete sample code:-
Download Sample Code
Have a look on few code snippets,
MainActivity.java
Refer the below link for complete sample code:-
Download Sample Code
Have a look on few code snippets,
MainActivity.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 | public class MainActivity extends Activity { private static String mFileName = null; private MediaRecorder mRecorder = null; private MediaPlayer mPlayer = null; boolean mStartRecording = true; boolean mStartPlaying = true; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button btn_record=(Button)findViewById(R.id.btn_record); Button btn_play=(Button)findViewById(R.id.btn_play); btn_record.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { onRecord(mStartRecording); mStartRecording = !mStartRecording; } }); btn_play.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { onPlay(mStartPlaying); mStartPlaying = !mStartPlaying; } }); } private void startRecording() { mRecorder = new MediaRecorder(); mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); mFileName = Environment.getExternalStorageDirectory().getAbsolutePath(); mFileName += "/hbtest"; mRecorder.setOutputFile(mFileName); mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); try { mRecorder.prepare(); } catch (IOException e) { } try { mRecorder.start(); } catch (IllegalStateException e) { e.printStackTrace(); } } private void stopRecording() { mRecorder.stop(); mRecorder.release(); mRecorder = null; } private void onRecord(boolean start) { if (start) { startRecording(); } else { stopRecording(); } } private void startPlaying() { mPlayer = new MediaPlayer(); try { mPlayer.setDataSource(mFileName); mPlayer.prepare(); mPlayer.start(); } catch (IOException e) { } } private void stopPlaying() { mPlayer.release(); mPlayer = null; } private void onPlay(boolean start) { if (start) { startPlaying(); } else { stopPlaying(); } } @Override protected void onPause() { super.onPause(); if (mRecorder != null) { mRecorder.release(); mRecorder = null; } if (mPlayer != null) { mPlayer.release(); mPlayer = null; } } } |
No comments:
Post a Comment