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();
                            }
                    }
            });
    }
        
  • 相关阅读:
    JDK中Unsafe类详解
    JAVA并发理论与实践
    关于FastJSON
    指数退避算法
    MySQL多表关联查询效率高点还是多次单表查询效率高,为什么?
    App开放接口api安全性—Token签名sign的设计与实现
    使用Jmeter进行http接口性能测试
    短信验证登录实现流程
    使用 Postman 取得 Token 打另一隻 API
    SpringMVC拦截器HandlerInterceptor使用
  • 原文地址:https://www.cnblogs.com/wei1228565493/p/4187058.html
Copyright © 2011-2022 走看看