录音Demo

xml文件

  <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="录音" />

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="开启录音" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="停止录音" />
View Code

activity:

private Button button1;
    private Button button2;
private MediaRecorder mr;
    File path;
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_audio);
        
        button1=(Button) findViewById(R.id.button1);
        button2=(Button) findViewById(R.id.button2);
    button1.setOnClickListener(new OnClickListener() {
            
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                File file=new File("/sdcard/audio");
                if(!file.exists()){
                    file.mkdirs();
                }
                 
                 path=new File(file+"/YY"+new DateFormat().format("yyyyMMdd_hhmmss",
                        Calendar.getInstance(Locale.CHINA))+".amr");
                   Toast.makeText(getApplicationContext(), "正在录音,录音文件在"+path.getAbsolutePath(), Toast.LENGTH_LONG)
                   .show();
                   
                   // 创建录音对象
                   mr = new MediaRecorder();
                   // 从麦克风源进行录音
                   mr.setAudioSource(MediaRecorder.AudioSource.DEFAULT);
                   // 设置输出格式
                   mr.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);

                   // 设置编码格式
                   mr.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);

                   // 设置输出文件
                   mr.setOutputFile(path.getAbsolutePath());


                   try {
                           // 创建文件
                       path.createNewFile();
                           // 准备录制
                           mr.prepare();
                           // 开始录制
                           mr.start();
                           button1.setText("录音中……");
                   } catch (IllegalStateException e) {
                           e.printStackTrace();
                   } catch (IOException e) {
                           e.printStackTrace();
                   }
                 
            }
        });
        // 停止按钮点击事件
        button2.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View v) {

                        if (mr != null) {
                                mr.stop();
                                mr.reset(); //重设
                                mr.release();
                                mr = null;
                              //  button1.setText("录音");
                                Toast.makeText(getApplicationContext(), "录音完毕", Toast.LENGTH_LONG).show();
                        }
                }
        });
}
    
原文地址:https://www.cnblogs.com/wei1228565493/p/4187058.html