package com.app.recordingtest;

import java.io.File;
import java.io.IOException; import android.app.Activity;
import android.media.MediaRecorder;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ListView;
import android.widget.Toast;
/**
* v1.0 version
*
* @author Administrator
*
*/
public class MainActivity extends Activity implements OnClickListener {
Button button1, button2;
MediaRecorder recorder;
ListView listView1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button1 = (Button) findViewById(R.id.button1);
button2 = (Button) findViewById(R.id.button2);
listView1 = (ListView) findViewById(R.id.listView1);
button1.setOnClickListener(this);
button2.setOnClickListener(this);
} @Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
} @Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button1 :
try {
begin();
} catch (IOException e) {
e.printStackTrace();
}
break;
case R.id.button2 :
stop();
break; default :
break;
} } private void stop() {
recorder.stop(); // 暂停
recorder.reset(); // 重置
recorder.release(); // 释放
Toast.makeText(MainActivity.this, "暂停..", Toast.LENGTH_SHORT).show();
} private void begin() throws IOException {
final String PATH = "/mnt/sdcard"; // 设置路径
File filePath = new File(PATH);
filePath = File.createTempFile("/fileName", ".amr/", filePath);
String outPath = filePath.getPath().toString();
Toast.makeText(MainActivity.this, "开始.." + outPath, Toast.LENGTH_SHORT)
.show();
recorder = new MediaRecorder(); // 创建对象
recorder.setAudioSource(MediaRecorder.AudioSource.MIC); // 设置来源
recorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT); // 设置输出格式
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); // 设置编码
recorder.setOutputFile(outPath); // 设置输出路径
Toast.makeText(MainActivity.this,
" .." + filePath.getAbsolutePath().toString(),
Toast.LENGTH_SHORT).show();
try {
recorder.prepare(); // 准备录音
recorder.start(); // 开始录音
Toast.makeText(MainActivity.this, "开始..", Toast.LENGTH_SHORT)
.show();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} } }

Android recording 录音功能 简单使用小实例的更多相关文章

  1. 从一个简单的小实例分析JSP+Servelt与JSP+Struts2框架的区别

    最近在学struts2,struts2相比以前的JSP+Servlet,在处理流程上的更简单,我们就一个小实例来具体分析一下. 实例内容如下: 实现一个简单的注册页面包括:用户名.密码.重复密码.年龄 ...

  2. MVC——入门+简单的小实例

    MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controler)的缩写,一种软件设计典范,用于组织代码用一种业务逻辑和数据显示分离的方法. ...

  3. VueX(vue状态管理)简单小实例

    VueX:状态管理 Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化. 核心模块:State. ...

  4. 一个简单的Android小实例

    原文:一个简单的Android小实例 一.配置环境 1.下载intellij idea15 2.安装Android SDK,通过Android SDK管理器安装或卸载Android平台   3.安装J ...

  5. 怎样在Android实现桌面清理内存简单Widget小控件

    怎样在Android实现桌面清理内存简单Widget小控件 我们常常会看到类似于360.金山手机卫士一类的软件会带一个widget小控件,显示在桌面上,上面会显示现有内存大小,然后会带一个按键功能来一 ...

  6. Android单片机与蓝牙模块通信实例代码

    Android单片机与蓝牙模块通信实例代码 参考路径:http://www.jb51.net/article/83349.htm 啦啦毕业了,毕业前要写毕业设计,需要写一个简单的蓝牙APP进行交互,通 ...

  7. canva实践小实例 —— 马赛克效果

    前面给大家带来了操作像素的API,此时此刻,我觉得应该配以小实例来进行进一步的说明和演示,以便给大家带来更宽广的视野和灵感,你们看了我的那么多的文章,应该是懂我的风格,废话不多说,进入正题: 这次给大 ...

  8. canvas实践小实例二 —— 扇形

    俗话说:发图不留种,菊花万人捅!我这里想延伸一下:教学不给例,说你是傻逼!哎呀,还挺押韵,嘻嘻,开个玩笑! 我们都讲了四期API的知识了,估计大家看的也是枯燥的很啊,前面的小实例也是太简单,简直不解渴 ...

  9. canvas实践小实例一 —— 画板工具

    前面讲了一部分的canvasAPI的基础知识,光看API的介绍确实是很无趣乏味,需要一点可以激发内心的激情的东西来激励自己来学习,于是就了伴随canvasAPI学习的小实例,这样通过API的知识,结合 ...

随机推荐

  1. 【noi.ac】#309. Mas的童年

    #309. Mas的童年 链接 分析: 求$max \{sj + (s_i \oplus s_j)\}$ 因为$a + b = a \oplus b + (a \& b) \times 2$ ...

  2. MemAdmin 轻量级可视化Memcached管理工具

    蛮好用的 具体功能看图 开源地址:https://github.com/junstor/memadmin

  3. SqlServer 案例:已有汽车每日行驶里程数据,计算其每日增量

    需求说明 某公司某项业务,需要获得用户每日行车里程数.已知能获得该车每日提交的总里程数,如何通过 T-SQL 来获得其每日增量里程? 解决方案 首选需要对数据进行编号,利用开窗函数 OVER() 实现 ...

  4. Oracle_安装说明

    1.先到Oracle官网上下载11g oracle Database 11g 第 2 版 (11.2.0.1.0) 标准版.标准版 1 以及企业版 适用于 Microsoft Windows (x64 ...

  5. Docker环境编译时的错误记录

    1)报错一docker-compose -f compose/app.yaml -f compose/backend.yaml -f compose/proxy.yaml build peatio b ...

  6. Command Analyze failed with a nonzero exit code

    在运行RN项目的时候,报 Command Analyze failed with a nonzero exit code ,试着将build System 修改下

  7. windows上tomcat8的安装及配置

    提示:在安装tomcat之前,确定安装好jdk. 一.下载tomcat8 http://tomcat.apache.org/download-80.cgi 点击这个网址 根据自己电脑的才做系统版本安装 ...

  8. 个人项目Week1

    一.项目时间规划与实际用时 PSP2.1 Personal Software Process Stages 预计时间/h 实际时间/h Planning 计划     · Estimate · 估计这 ...

  9. myeclipse从SVN检出项目报错

    今天是在公司实习的第一天,从SVN服务器检出项目后发现报错. 解决方法: 1. 右键项目,选择属性properties-->选择resource-->将others选中并换为UTF-8 2 ...

  10. let命令和块级作用域

    学习了阮一峰老师的ES6,http://es6.ruanyifeng.com/,收益良多. 一.let命令1.概念:let命令用于声明变量,和var类似,但是使用let命令所声明的变量只有在该变量所在 ...