zoukankan      html  css  js  c++  java
  • android audio

    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();
            }
       }
    
    }
  • 相关阅读:
    grunt in webstorm
    10+ Best Responsive HTML5 AngularJS Templates
    响应式布局
    responsive grid
    responsive layout
    js event bubble and capturing
    Understanding Service Types
    To add private variable to this Javascript literal object
    Centering HTML elements larger than their parents
    java5 新特性
  • 原文地址:https://www.cnblogs.com/rojas/p/4535110.html
Copyright © 2011-2022 走看看