package com.javacodegeeks.android.audiocapturetest;import java.io.IOException;import android.media.MediaPlayer;import android.media.MediaRecorder;import android.os.Bundle;import android.os.Environment;import android.app.Activity;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.TextView;import android.widget.Toast;public class MainActivity extends Activity {   private MediaRecorder myRecorder;   private MediaPlayer myPlayer;   private String outputFile = null;   private Button startBtn;   private Button stopBtn;   private Button playBtn;   private Button stopPlayBtn;   private TextView text;      @Override   protected void onCreate(Bundle savedInstanceState) {      super.onCreate(savedInstanceState);      setContentView(R.layout.activity_main);            text = (TextView) findViewById(R.id.text1);      // store it to sd card      outputFile = Environment.getExternalStorageDirectory().              getAbsolutePath() + "/javacodegeeksRecording.3gpp";      myRecorder = new MediaRecorder();      myRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);      myRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);      myRecorder.setAudioEncoder(MediaRecorder.OutputFormat.AMR_NB);      myRecorder.setOutputFile(outputFile);            startBtn = (Button)findViewById(R.id.start);      startBtn.setOnClickListener(new OnClickListener() {                @Override        public void onClick(View v) {            // TODO Auto-generated method stub            start(v);        }      });            stopBtn = (Button)findViewById(R.id.stop);      stopBtn.setOnClickListener(new OnClickListener() {                    @Override          public void onClick(View v) {              // TODO Auto-generated method stub              stop(v);          }      });            playBtn = (Button)findViewById(R.id.play);      playBtn.setOnClickListener(new OnClickListener() {                    @Override          public void onClick(View v) {              // TODO Auto-generated method stub                play(v);              }      });            stopPlayBtn = (Button)findViewById(R.id.stopPlay);      stopPlayBtn.setOnClickListener(new OnClickListener() {                    @Override          public void onClick(View v) {              // TODO Auto-generated method stub              stopPlay(v);          }      });   }   public void start(View view){       try {          myRecorder.prepare();          myRecorder.start();       } catch (IllegalStateException e) {          // start:it is called before prepare()          // prepare: it is called after start() or before setOutputFormat()           e.printStackTrace();       } catch (IOException e) {           // prepare() fails           e.printStackTrace();        }              text.setText("Recording Point: Recording");       startBtn.setEnabled(false);       stopBtn.setEnabled(true);              Toast.makeText(getApplicationContext(), "Start recording...",                Toast.LENGTH_SHORT).show();   }   public void stop(View view){       try {          myRecorder.stop();          myRecorder.release();          myRecorder  = null;                    stopBtn.setEnabled(false);          playBtn.setEnabled(true);          text.setText("Recording Point: Stop recording");                    Toast.makeText(getApplicationContext(), "Stop recording...",                  Toast.LENGTH_SHORT).show();       } catch (IllegalStateException e) {            //  it is called before start()            e.printStackTrace();       } catch (RuntimeException e) {            // no valid audio/video data has been received            e.printStackTrace();       }   }     public void play(View view) {       try{           myPlayer = new MediaPlayer();           myPlayer.setDataSource(outputFile);           myPlayer.prepare();           myPlayer.start();                      playBtn.setEnabled(false);           stopPlayBtn.setEnabled(true);           text.setText("Recording Point: Playing");                      Toast.makeText(getApplicationContext(), "Start play the recording...",                    Toast.LENGTH_SHORT).show();       } catch (Exception e) {            // TODO Auto-generated catch block            e.printStackTrace();        }   }      public void stopPlay(View view) {       try {           if (myPlayer != null) {               myPlayer.stop();               myPlayer.release();               myPlayer = null;               playBtn.setEnabled(true);               stopPlayBtn.setEnabled(false);               text.setText("Recording Point: Stop playing");                              Toast.makeText(getApplicationContext(), "Stop playing the recording...",                        Toast.LENGTH_SHORT).show();           }       } catch (Exception e) {            // TODO Auto-generated catch block            e.printStackTrace();        }   }}

更多相关文章

  1. 代码中设置drawableleft
  2. android 3.0 隐藏 系统标题栏
  3. Android开发中activity切换动画的实现
  4. Android(安卓)学习 笔记_05. 文件下载
  5. Android中直播视频技术探究之—摄像头Camera视频源数据采集解析
  6. 技术博客汇总
  7. android 2.3 wifi (一)
  8. AndRoid Notification的清空和修改
  9. Android中的Chronometer

随机推荐

  1. ClipboardService(CBS)中的权限管理
  2. Android键盘系统相关代码分析(1)
  3. Android软件安装
  4. class文件生成dex文件的步骤(命令行操作)
  5. 视频教程-MongoDB数据库从入门到精通-Mon
  6. Hello Android(安卓)- PULL方式解析XML
  7. 强制开启android webview debug模式使用C
  8. Android开源项目之二---工具库篇
  9. android 判断字符串是否为空的最优方法
  10. Android(安卓)Volley 完全解析(三),定制自