zoukankan      html  css  js  c++  java
  • 录音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();
                            }
                    }
            });
    }
        
  • 相关阅读:
    转载Typora学习笔记
    SpringMVC整体接受前台参数
    基于SSM框架实现oa项目
    Don't know how to iterate over supplied "items" in &lt;forEach&gt;
    springMVC自定义类型转换器(date类型转换)
    springMVC异常处理
    linux服务器基础运维
    什么是服务器
    mysql binlog日志 恢复数据,mysqldump备份
    nginx LVS Haproxy
  • 原文地址:https://www.cnblogs.com/wei1228565493/p/4187058.html
Copyright © 2011-2022 走看看