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

开发者社区> 问答> 正文

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

2016-06-01 15:12:46 1909 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
相关问答

8

回答

短视频SDK如何做到视频原始比例裁剪?

EdgePlus 2017-09-13 17:35:01 39857浏览量 回答数 8

323

回答

云伴侣数据导入问题汇总(Android系统)

os_admin 2011-07-26 17:52:15 63435浏览量 回答数 323

22

回答

爬虫数据管理【问答合集】

我是管理员 2018-08-10 16:37:41 148504浏览量 回答数 22

15

回答

OSS学院:为什么我的图片会被下载?怎么在线播放影音?

leehon 2013-09-13 16:40:00 35715浏览量 回答数 15

1

回答

2020年了,跨平台开发框架现在怎样了?

问问小秘 2020-04-15 13:23:24 35518浏览量 回答数 1

26

回答

安卓与iOS百问,开发者系统指南

yq传送门 2017-05-31 17:16:00 34533浏览量 回答数 26

25

回答

数据库百问,教你快速上手数据库

yq传送门 2017-06-13 08:01:34 43813浏览量 回答数 25

8

回答

mail.aliyun.com邮箱android手机客户端设置方法

jack_yang 2013-04-24 09:01:34 123769浏览量 回答数 8

3

回答

JAVA web 【精品问答合集】

我是管理员 2018-07-13 16:02:35 28343浏览量 回答数 3

46

回答

H5技术百问——不懂H5你就OUT啦

yq传送门 2017-09-09 11:03:04 48273浏览量 回答数 46
+关注
2
文章
9426
问答
问答排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载