Advertisement
Guest User

Untitled

a guest
Mar 30th, 2015
235
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.62 KB | None | 0 0
  1. import android.support.v7.app.ActionBarActivity;
  2. import android.content.Context;
  3. import android.media.MediaPlayer;
  4. import android.media.MediaRecorder;
  5. import android.os.Bundle;
  6. import android.util.Log;
  7. import android.view.Menu;
  8. import android.view.View;
  9. import android.view.ViewGroup;
  10. import android.widget.Button;
  11. import android.widget.LinearLayout;
  12.  
  13. public class MainActivity extends ActionBarActivity {
  14.  
  15. private static final String LOG_TAG ="AudioRecordTest";
  16. private static String mFileName;
  17. private MediaRecorder mRecorder;
  18. private MediaPlayer mPlayer;
  19.  
  20. private PlayButton mPlayButton;
  21. private RecordButton mRecordButton;
  22.  
  23. @Override
  24. protected void onCreate(Bundle savedInstanceState) {
  25. super.onCreate(savedInstanceState);
  26. setContentView(R.layout.activity_main);
  27. LinearLayout l1 = new LinearLayout(this);
  28. mRecordButton = new RecordButton(this);
  29. l1.addView(mRecordButton, new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT, 0));
  30. mPlayButton = new PlayButton(this);
  31. l1.addView(mPlayButton, new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT, 0));
  32.  
  33. setContentView(l1);
  34. }
  35.  
  36. @Override
  37. protected void onPause() {
  38. super.onPause();
  39. if(mRecorder != null){
  40. mRecorder.release();
  41. mRecorder = null;
  42. }
  43. }
  44.  
  45. @Override
  46. public boolean onCreateOptionsMenu(Menu menu) {
  47. // Inflate the menu; this adds items to the action bar if it is present.
  48. getMenuInflater().inflate(R.menu.main, menu);
  49. return true;
  50.  
  51. }
  52.  
  53. class RecordButton extends Button{
  54. public RecordButton(Context context) {
  55. super(context);
  56. // TODO Auto-generated constructor stub
  57. setText("Start Recording");
  58. setOnClickListener(clicker);
  59. }
  60. boolean mStartRecording = true;
  61. OnClickListener clicker = new OnClickListener() {
  62.  
  63. @Override
  64. public void onClick(View v) {
  65. OnRecord(mStartRecording);
  66. if(mStartRecording){
  67. setText("Stop Recording");
  68.  
  69. }
  70. else{
  71. setText("Start Recording");
  72. }
  73.  
  74. mStartRecording = !mStartRecording;
  75.  
  76. }
  77.  
  78.  
  79. };
  80. }
  81.  
  82. private void OnRecord(boolean start) {
  83. // TODO Auto-generated method stub
  84. if(start){
  85. startRecording();
  86. }
  87. else{
  88. stopRecording();
  89.  
  90. }
  91.  
  92. }
  93.  
  94. private void stopRecording() {
  95. // TODO Auto-generated method stub
  96. mRecorder.stop();
  97. mRecorder.release();
  98. mRecorder = null;
  99.  
  100. }
  101.  
  102. private void startRecording() {
  103. // TODO Auto-generated method stub
  104. mRecorder = new MediaRecorder();
  105. mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
  106. mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
  107. mRecorder.setOutputFile(mFileName);
  108. mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
  109.  
  110. try {
  111. mRecorder.prepare();
  112. } catch (Exception e) {
  113. Log.e(LOG_TAG, "Prepare() failed");
  114.  
  115. }
  116. }
  117.  
  118. class PlayButton extends Button{
  119.  
  120. public PlayButton(Context context) {
  121. super(context);
  122. setText("Start Playing");
  123. setOnClickListener(clicker);
  124. }
  125.  
  126. OnClickListener clicker = new OnClickListener() {
  127.  
  128. private boolean mStartPlaying;
  129.  
  130. @Override
  131. public void onClick(View v) {
  132. onPlay(mStartPlaying);
  133. if(mStartPlaying){
  134. setText("Stop Playing");
  135. }
  136. else{
  137. setText("Start Playing");
  138.  
  139. }
  140. mStartPlaying = ! mStartPlaying;
  141. }
  142.  
  143. };
  144.  
  145. }
  146.  
  147. private void onPlay(boolean start) {
  148. // TODO Auto-generated method stub
  149. if(start){
  150. startPlaying();
  151. }
  152. else{
  153. stopPlaying();
  154. }
  155. }
  156.  
  157. private void stopPlaying() {
  158. // TODO Auto-generated method stub
  159. mPlayer.release();
  160. mPlayer = null;
  161.  
  162. }
  163.  
  164. private void startPlaying() {
  165. // TODO Auto-generated method stub
  166. mPlayer = new MediaPlayer();
  167. try {
  168. mPlayer.setDataSource(mFileName);
  169. mPlayer.prepare();
  170. mPlayer.start();
  171. } catch (Exception e) {
  172. Log.e(LOG_TAG, "Prepare() Failed");
  173. }
  174.  
  175. }
  176.  
  177. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement