import android.media.MediaRecorder;
import android.os.Environment; import java.io.File;
import java.io.IOException; public class RecoderUtils { private final MediaRecorder recorde = new MediaRecorder();
private final String path;
private static int SAMPLE_RATE_IN_HZ = 8000; public RecoderUtils(String path) {
this.path = sanitizePath(path);
} private String sanitizePath(String path) {
if (!path.startsWith("/")) {
path = "/" + path;
}
if (!path.contains(".")) {
path += ".amr";
}
return Environment.getExternalStorageDirectory().getAbsolutePath() + "/myvoice" + path;
} /** 开始录音 */
public void start() {
if (!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
return;
}
File directory = new File(path).getParentFile();
if (!directory.exists() && !directory.mkdirs()) {
return;
} try {
// 设置声音的来源
recorde.setAudioSource(MediaRecorder.AudioSource.MIC);
// 设置声音的输出格式
recorde.setOutputFormat(MediaRecorder.OutputFormat.RAW_AMR);
// 设置声音的编码格式
recorde.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
// 设置音频采样率
recorde.setAudioSamplingRate(SAMPLE_RATE_IN_HZ);
// 设置输出文件
recorde.setOutputFile(path);
// 准备录音
recorde.prepare();
// 开始录音
recorde.start();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
} /** 停止录音 */
public void stop() {
try {
// 停止录音
recorde.stop();
// 释放资源
recorde.release();
} catch (Exception e) {
e.printStackTrace();
}
} public double getAmplitude() {
if (recorde != null) {
return (recorde.getMaxAmplitude());
} else
return 0;
} }

RecoderUtils录音工具类的更多相关文章

  1. Android之录音工具类

    /** * 录音工具类 * * @author rendongwei * */ public class RecordUtil { private static final int SAMPLE_RA ...

  2. 随笔分类 - Android之工具类

    Android之文件搜索工具类 /** * @detail 搜索sdcard文件 * @param 需要进行文件搜索的目录 * @param 过滤搜索文件类型 */ private void sear ...

  3. 实用工具类--第三方开源--Lazy

    下载地址 :https://github.com/ddwhan0123/Lazy 工具 描述 AnimationUtils 动画工具类 AppUtils APP相关信息工具类 AssetDatabas ...

  4. utils部分--一些通用的工具类封装

    1.简介 utils部分是对一些常用的工具类进行简单的封装,使用起来比较方便.这里列举常用的一些. 2.ContextUtils使用 主要封装了网络判断.一些方法解释如下: ? 1 2 3 4 5 6 ...

  5. Android 系统工具类

    系统工具类 public class systemUtil { //隐藏ipad底部虚拟按键栏 @RequiresApi(api = Build.VERSION_CODES.KITKAT) publi ...

  6. Java基础Map接口+Collections工具类

    1.Map中我们主要讲两个接口 HashMap  与   LinkedHashMap (1)其中LinkedHashMap是有序的  怎么存怎么取出来 我们讲一下Map的增删改查功能: /* * Ma ...

  7. Android—关于自定义对话框的工具类

    开发中有很多地方会用到自定义对话框,为了避免不必要的城府代码,在此总结出一个工具类. 弹出对话框的地方很多,但是都大同小异,不同无非就是提示内容或者图片不同,下面这个类是将提示内容和图片放到了自定义函 ...

  8. [转]Java常用工具类集合

    转自:http://blog.csdn.net/justdb/article/details/8653166 数据库连接工具类——仅仅获得连接对象 ConnDB.java package com.ut ...

  9. js常用工具类.

    一些js的工具类 复制代码 /** * Created by sevennight on 15-1-31. * js常用工具类 */ /** * 方法作用:[格式化时间] * 使用方法 * 示例: * ...

随机推荐

  1. web应用原理之——会话

    会话是大家开发Java EE Web应用的常用技术,那么会话是什么,会话的用途还有工作原理又是什么,下面就简单说一说. 什么是会话,在web应用中,作为客户端的浏览器,通过请求/响应这种模式访问同一个 ...

  2. Win7系统不能拖动文件夹的问题怎么解决?

    一般情况下,如果我们想要在电脑中移动文件夹,可以采用剪切复制粘贴或者按住鼠标左键拖动的方式来实现,但有些Win7系统用户反映文件夹会出现不能移动的情况,这是怎么回事呢?下面好系统U盘启动就为大家介绍一 ...

  3. linux usb驱动记录(一)

    一.linux 下的usb驱动框架 在linux系统中,usb驱动可以从两个角度去观察,一个是主机侧,一个是设备侧.linux usb 驱动的总体框架如下图所示:   从主机侧看usb驱动可分为四层: ...

  4. iTerm2快速SSH连接并保存密码

    背景 Mac自带terminal,以及比较好用的iTerm2命令行工具,都缺乏一个功能,就是远程SSH连接,无法保存密码.一种方法是将本机的ssh_key放到远程服务器中实现无密码登录.这种方法在很多 ...

  5. hg如何回退到某个版本

    hg 如何回退 hg ... ? ? ?

  6. iOS的VideoToolBox与Android的MediaCodec对PTS的处理异同

    视频源,不论是从采集设备采集到的,还是本身压制好的文件,其流中的数据都是按照编码顺序存储的.比如1 2 3 4 5,5帧视频数据,1编码成I帧,2 3 4编码成B帧,5编码成P帧. 编码过程: 1. ...

  7. SQL 查询今天、昨天、7天内、30天的数据

    今天的所有数据: 昨天的所有数据: 7天内的所有数据: 30天内的所有数据: 本月的所有数据: 本年的所有数据: 查询今天是今年的第几天: select datepart(dayofyear,getD ...

  8. Prim算法和Kruskal算法介绍

    一.Prim算法 普利姆(Prim)算法适用于求解无向图中的最小生成树(Minimum Cost Spanning Tree).下面是Prim算法构造最小生成树的过程图解.              ...

  9. java.lang.NoClassDefFoundError: javax/servlet/ServletOutputStream

    扩展阅读:https://blog.csdn.net/kimylrong/article/details/50353161

  10. java实现简单的单点登录 (转)

    摘要:单点登录(SSO)的技术被越来越广泛地运用到各个领域的软件系统当中.本文从业务的角度分析了单点登录的需求和应用领域:从技术本身的角度分析了单点登录技术的内部机制和实现手段,并且给出Web-SSO ...