zoukankan      html  css  js  c++  java
  • android中使用MediaRecoder录制声音

    package com.test.mediarecorder;
    
    import java.io.File;
    
    import android.media.MediaRecorder;
    import android.os.Bundle;
    import android.os.Environment;
    import android.app.Activity;
    import android.view.Menu;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.Toast;
    
    public class MainActivity extends Activity implements OnClickListener {
    
        private Button start, stop;
        private MediaRecorder recorder;
        private File soundFile;
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            start = (Button) findViewById(R.id.start);
            stop = (Button) findViewById(R.id.stop);
            
            start.setOnClickListener(this);
            stop.setOnClickListener(this);
            recorder = new MediaRecorder();
            System.out.println(Environment.getExternalStorageDirectory());
        }
    
        @Override
        public void onClick(View v) {
    
          try {
              
              switch (v.getId()) {
            case R.id.start:
                if (!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
                    Toast.makeText(this, "SD not exists", Toast.LENGTH_LONG).show();
                    return;
                } 
                // create file to save sound
                soundFile = new File(Environment.getExternalStorageDirectory().getCanonicalFile() + "/sound.amr");
                // set the sound source
                recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
                // set the sound output type it must before set sound encoding
                recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
                //set sound encoding
                recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
                recorder.setOutputFile(soundFile.getAbsolutePath());
                recorder.prepare();
                // start record sound
                recorder.start();
                break;
            case R.id.stop:
                if (soundFile != null && soundFile.exists()) {
                    // stop record
                    recorder.stop();
                    recorder.release();
                    recorder = null;
                }
                break;
            }
          }catch (Exception e) {
              e.printStackTrace();
          }
            
        }
    
    }
  • 相关阅读:
    SAP BW 例程(Routine)【开始例程、关键值或特性的例程、结束例程】
    sap 提取字符串中汉字
    判断当前一个物料被其他人锁定
    ABAP "FOR ALL ENTRIES IN" 使用指南
    ABAP检查日期and时间合法性的函数
    READ语句相关
    QUERY客户出口变量的I_STEP解释
    Abap 内表的语法
    Ancient Knight(打造Windows Mobile平台最专业的游戏修改器)
    VC通用控件自适应屏幕类
  • 原文地址:https://www.cnblogs.com/heml/p/3594319.html
Copyright © 2011-2022 走看看