android获取录音音量大小,Android 获取麦克风音量
Android
上有一些很有趣的应用,例如《吹裙子》、《吹气球》之类的。利用的是实时获取麦克风输入音量,然后进行相应的处理。录音过程中怎样获得声音的大小呢?网上也不少人问如何处理这个事情,也有一些解答,不过都没有实际的代码。简单摸索了一下,写了个小
Demo 试了试,果然可以。给大家共享一下。
不解释代码了,大家看注释。
package eoe.demo;
import android.media.AudioFormat;
import android.media.AudioRecord;
import android.media.MediaRecorder;
import android.util.Log;
public class RecordThread extends Thread {
private AudioRecord ar;
private int bs;
private static int SAMPLE_RATE_IN_HZ = 8000;
private boolean isRun = false;
public RecordThread() {
super();
bs = AudioRecord.getMinBufferSize(SAMPLE_RATE_IN_HZ,
AudioFormat.CHANNEL_CONFIGURATION_MONO,
AudioFormat.ENCODING_PCM_16BIT);
ar = new AudioRecord(MediaRecorder.AudioSource.MIC,
SAMPLE_RATE_IN_HZ, AudioFormat.CHANNEL_CONFIGURATION_MONO,
AudioFormat.ENCODING_PCM_16BIT, bs);
}
public void run() {
super.run();
ar.startRecording();
// 用于读取的
buffer byte[] buffer = new byte[bs]; isRun = true; while (isRun)
{
int r = ar.read(buffer, 0, bs);
int v = 0;
// 将 buffer 内容取出,进行平方和运算
for (int i = 0; i < buffer.length; i++) {
// 这里没有做运算的优化,为了更加清晰的展示代码
v += buffer[i] * buffer[i];
}
// 平方和除以数据总长度,得到音量大小。可以获取白噪声值,然后对实际采样进行标准化。
// 如果想利用这个数值进行操作,建议用 sendMessage 将其抛出,在 Handler 里进行处理。
Log.d("spl", String.valueOf(v / (float) r));
}
ar.stop();
}
public void pause() {
// 在调用本线程的 Activity 的 onPause 里调用,以便 Activity 暂停时释放麦克风
isRun = false;
}
public void start() {
// 在调用本线程的 Activity 的 onResume 里调用,以便 Activity 恢复后继续获取麦克风输入音量
if (!isRun) {
super.start();
}
}
}
android获取录音音量大小,Android 获取麦克风音量相关推荐
- android获取sd的大小,Android实现获取SD卡总容量,可用大小,机身内存总容量及可用大小的方法...
本文实例讲述了Android实现获取SD卡总容量,可用大小,机身内存总容量及可用大小的方法.分享给大家供大家参考,具体如下: 可能有的同学不知道系统已经提供了获取获取SD卡总容量,可用大小,机身内存总 ...
- android中录音断点播放,Android实现暂停--继续录音(AudioRecord)
Android提供了两个API用于录音的实现:MediaRecorder 和 AudioRecord,各有优劣. 1.MediaRecorder 已经集成了录音.编码.压缩等,支持少量的录音音频格式, ...
- Android全局修改字体大小,Android 仿微信全局字体大小调整
image 目录 一.前言 二.效果预览 三.实现步骤 1.自定义字体调整控件 2.滑动按钮改变当前页面预览字体大小 3.返回时,保存放大倍数并重启应用 4.初始化应用时配置字体放大倍数. 四.Dem ...
- android 自由缩放图片大小,android Matrix实现图片随意放大缩小或拖动
本文实例为大家分享了android Matrix图片随意放大缩小和拖动的具体代码,供大家参考,具体内容如下 step1:新建一个项目DragAndZoom,并准备一张照片放在res/drawable- ...
- python获取文件的大小_python获取文件大小
python获取文件大小# !/usr/bin/python3.4 # -*- coding: utf-8 -*- import os # 字节bytes转化kb\m\g def formatSize ...
- android 推送图标大小,Android状态栏图标大小 – 使用Cordova / Phonegap推送插件
我正在使用Ionic(Cordova AngularJS)开发 Android应用程序.有了它,我使用推送插件( https://github.com/phonegap-build/PushPlugi ...
- java 获取文件的大小kb_java获取文件大小的方法
java获取文件大小的方法 目前Java获取文件大小的方法有两种: 1.通过file的length()方法获取: 2.通过流式方法获取: 通过流式方法又有两种,分别是旧的java.io.*中FileI ...
- php获取网络图片的大小,PHP获取远程图片尺寸和大小实例演示
这篇文章主要为大家详细介绍了PHP获取远程图片尺寸和大小实例演示,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,有需要的朋友可以收藏方便以后借鉴. PHP功能强大,今天361源码给大家介绍的是: ...
- 【乐畅】工作积累 ---- 调节音量大小 (滑动条调节音量大小并保存起来 )
cocos2dx 的音量的大小的范围是 0.0f ~ 1.0f 1 // 获取音量大小 2 float musicVolume = getMusicVolume(); 3 float effectVo ...
最新文章
- CCS3的过渡、变换、动画以及响应式布局、弹性布局
- php ip2long bug,php ip2long函数怎么用-PHP问题
- jmeter环境部署
- 对.NET的GC(垃圾回收)的理解都存在错误认识
- 武新博士:新型MPP数据库将支撑起大数据时代
- mysql 禁止存储过程_为什么阿里巴巴禁止使用存储过程?
- UcOS-II 和linux比较
- 为什么优酷的《楚乔传》画质更清晰?独家解密窄带高清技术
- 图形界面组件实验的一点总结
- 资深架构师自述:程序员的黄金奋斗时期是前5年
- java jsp交友系统_Jsp+Servlet+Javabean网络交友程序设计+源代码
- 作曲大师2019破解版|作曲大师音乐梦想家2019破解版下载 v2019.9(附安装破解图文教程)
- CAN总线知识点梳理
- 【图像处理】镜头去污渍(未完全实现):python + OpenCV
- 学习乔布斯的成功方法
- Redisson(2-3)分布式锁实现对比 VS Java的ReentrantLock的FairLock
- python文件处理pdf_Python用于NLP :处理文本和PDF文件
- javascript判断浏览器是否是隐私模式
- Java生成条形码图片到本地
- Python合并两个列表的方法