Android项目一点录音按钮就停止运行 -问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

Android项目一点录音按钮就停止运行

2016-06-01 15:12:46 1981 1
package com.example.task314;

import java.io.File;
 import java.io.IOException;
 import java.text.SimpleDateFormat;

import android.media.MediaRecorder;
 import android.os.Bundle;
 import android.os.Environment;
 import android.os.SystemClock;
 import android.app.Activity;
 import android.view.Menu;
 import android.view.View;
 import android.view.Window;
 import android.widget.Button;
 import android.widget.Chronometer;
 import android.widget.Toast;
 /**
在Android上编写一个程序,能够启动本机的录音功能、拍照功能、摄像功能。不考虑权限问题
@author Administrator

*/
 public class Sound extends Activity {

private Button bt1 = null;
 private Button bt2 = null;
 private Chronometer ch1 =null;
 private MediaRecorder mr = null;
 private String PATH = Environment.getExternalStorageDirectory().getAbsolutePath()+"/media";

private int i=0;

@Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 requestWindowFeature(Window.FEATURE_NO_TITLE);
 setContentView(R.layout.activity_sound);
bt1 = (Button)this.findViewById(R.id.button1);
bt2 = (Button)this.findViewById(R.id.button2);
ch1 = (Chronometer)findViewById(R.id.chronometer1);

//创建一个临时的音频输出文件


// audioFile = File.createTempFile("record_", ".amr");
 //第4步:指定音频输出文件
 // mediaRecorder.setOutputFile(audioFile.getAbsolutePath());
 File file = new File(PATH);

 if (!file.exists()) {

 //按照指定的路径创建文件夹

 file.mkdirs();

 }
bt1.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View arg0) {
        // TODO Auto-generated method stub              
        mr = new MediaRecorder();
        // 第1步:设置音频来源(MIC表示麦克风)
        mr.setAudioSource(MediaRecorder.AudioSource.MIC);
        //第2步:设置音频输出格式(默认的输出格式)
        mr.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);
        //第3步:设置音频编码方式(默认的编码方式)
        mr.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);

        SimpleDateFormat sDateFormat = new SimpleDateFormat("yyyyMMdd_hhmmss");
        String date = sDateFormat.format(new java.util.Date());

        System.out.println("time---"+date);

        String mFileName = PATH + "/"+date+".amr";
        mr.setOutputFile(mFileName);



// System.out.println(""+audioFile.getAbsolutePath().toString());
 //第5步:调用prepare方法
 try {
 mr.prepare();
 } catch (IllegalStateException e) {
 // TODO Auto-generated catch block
 e.printStackTrace();
 } catch (IOException e) {
 // TODO Auto-generated catch block
 e.printStackTrace();
 }
            //第6步:调用start方法开始录音
            mr.start();

            //启动计时器
//          ch1.setBase(SystemClock.elapsedRealtime());  
            ch1.start();

            Toast.makeText(getApplicationContext(), "开启", 0).show();
            bt1.setEnabled(false);
        }
    });
    bt2.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            //第7步:停止录音
            if(mr != null )
            {
                mr.stop();
                ch1.stop();
                ch1.setBase(SystemClock.elapsedRealtime());
                Toast.makeText(getApplicationContext(), "关闭", 0).show();
                bt1.setEnabled(true);
            }                  
        }
    });
}


}
取消 提交回答
全部回答(1)
  • 爵霸
    2019-07-17 19:23:23

    一般来说对于文件的操作都是要进行异常处理的,你这个很明显是没有进行try catch 嘛,还有就是代码书写一定要规范,否则没有人想看你的代码到底有哪些错误的,一样对你有用

    0 0
相关问答

1

回答

android运行出错? 400 报错

2020-05-31 00:16:57 272浏览量 回答数 1

0

回答

调用Android SDK上传属性

2022-07-06 12:23:45 123浏览量 回答数 0

1

回答

阿里云短视频SDK,android版编译合成视频画面自动填充失效,一直都被裁减.

2018-06-07 11:28:52 2367浏览量 回答数 1

1

回答

android sdk怎么进行混淆配置?

2018-05-18 09:12:23 1522浏览量 回答数 1

1

回答

oss android sdk说明

2018-01-17 13:39:08 670浏览量 回答数 1

0

回答

Android SDK如何下载?

2017-10-24 14:50:22 1626浏览量 回答数 0

0

回答

Android SDK如何下载?

2017-10-24 10:28:21 2580浏览量 回答数 0

0

回答

Android SDK 3.0配置如何实现?(1)

2017-10-23 10:53:07 1513浏览量 回答数 0

1

回答

API网关 Android SDK哪里下载

2017-03-08 14:03:16 2171浏览量 回答数 1

1

回答

Android - json 解析的问题

2016-07-04 11:49:45 1528浏览量 回答数 1
+关注
2
文章
9426
问答
问答排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载