java获取分贝_android 声音强度、分贝 大小检测 源码下载(as版)
【实例简介】
【实例截图】
【核心代码】
package me.daei.soundmeter;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.Toast;
import java.io.File;
import me.daei.soundmeter.widget.SoundDiscView;
public class MainActivity extends AppCompatActivity {
private boolean bListener = true;
private boolean isThreadRun = true;
private Thread thread;
float volume = 10000;
private SoundDiscView soundDiscView;
private MyMediaRecorder mRecorder ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mRecorder = new MyMediaRecorder();
}
private void startListenAudio() {
thread = new Thread(new Runnable() {
@Override
public void run() {
while (isThreadRun) {
try {
if(bListener) {
volume = mRecorder.getMaxAmplitude(); //获取声压值
if(volume > 0 && volume < 1000000) {
World.setDbCount(20 * (float)(Math.log10(volume))); //将声压值转为分贝值
soundDiscView.refresh(); //刷新View [注]子线程
}
}
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
bListener = false;
}
}
}
});
thread.start();
}
/**
* 开始记录
* @param fFile
*/
public void startRecord(File fFile){
try{
mRecorder.setMyRecAudioFile(fFile);
if (mRecorder.startRecorder()) {
startListenAudio();
}else{
Toast.makeText(this, "启动录音失败", Toast.LENGTH_SHORT).show();
}
}catch(Exception e){
Toast.makeText(this, "录音机已被占用或录音权限被禁止", Toast.LENGTH_SHORT).show();
e.printStackTrace();
}
}
@Override
protected void onResume() {
super.onResume();
soundDiscView = (SoundDiscView) findViewById(R.id.soundDiscView);
bListener = true;
File file = FileUtil.createFile("temp.amr");
if (file != null) {
Log.v("file", "file =" file.getAbsolutePath());
startRecord(file);
} else {
Toast.makeText(getApplicationContext(), "创建文件失败", Toast.LENGTH_LONG).show();
}
}
/**
* 停止记录
*/
@Override
protected void onPause() {
super.onPause();
bListener = false;
mRecorder.delete(); //停止记录并删除录音文件
thread = null;
}
@Override
protected void onDestroy() {
if (thread != null) {
isThreadRun = false;
thread = null;
}
mRecorder.delete();
super.onDestroy();
}
}
java获取分贝_android 声音强度、分贝 大小检测 源码下载(as版)相关推荐
- Java基于Redis实现“附近的人”(含源码下载)
"附近的人"在社交类APP已成为标配的功能,Low一点的实现方式可以把坐标存至关系型数据库,通过计算的坐标点距离实现,这种计算可行但计算速度远不及内存操作级别的NoSql数据库. ...
- 猫狗动物声音模拟器微信小程序源码下载各种类型的声音模拟
这是一款声音模拟器准确说是猫和狗的声音模拟器 该款小程序无需服务器和域名 所以该款小程序也就没有后端了 使用方法 直接用微信开发者工具打开源码上传提交审核即可 无需过段复杂的过程,文字图片那些都可以自 ...
- java获取当前周一_Java互联网架构-Spring IOC源码分析
欢迎关注头条号:java小马哥 周一至周日下午三点半!精品技术文章准时送上!!! 精品学习资料获取通道,参见文末 源码介绍之前,看几个问题: Bean的承载对象是什么? Bean的定义如何存储的? B ...
- java 获取包下的所有类,附完整源码和测试代码
java 获取包下的所有类,完整Java代码如下: package com.example.demo.util;import java.io.File; import java.io.FileFilt ...
- android-调用系统的ContentPrivder获取单张图片实现剪切做头像及源码下载
首先讲述这个小项目的特色: 1.调用系统的相册应用获取单张图片 2.对单张图片进行剪切方便做成指定大小的头像图片 3.对获取图片的结果进行解析,使用三种方式进行. 首先看看效果图: 打开app,进入注 ...
- Android 音视频深入 十七 FFmpeg 获取RTMP流保存为flv (附源码下载)
项目地址 https://github.com/979451341/RtmpSave 这个项目主要代码我是从雷神那弄过来的,不愧是雷神,我就配个环境搞个界面就可以用代码了. 这一次说的是将RTMP流媒 ...
- java技术分享主题_Java开发入门:适合新手练手的Java项目(附源码下载)
Java作为一门古老的语言,已有20年左右的历史,这在发展日新月异的技术圈可以说是一个神话.虽然不少人曾抱怨Java语言就像老太太的裹脚布,又臭又长,有时写了500行都不能表达程序员的意图. 但从市场 ...
- effective java英文版pdf_Java之Spring1:Spring简介、环境搭建、源码下载及导入MyEclipse...
框架学习前言 这个模块是面向Spring的,Spring的学习我是这么想的: 1.简单介绍Spring,主要是从网上借鉴一些重点 2.尽量说明清楚Spring的使用方法以及细节点 3.尽量以自己的理解 ...
- java验证码源码_Java通用验证码程序及应用示例(提供源码下载)
评论 # re: Java通用验证码程序及应用示例(提供源码下载) 2009-11-27 17:09 零全零美 多谢博主写出这么好的总结,如果能加上汉字验证码,会更完美! 回复 更多评论 # re ...
最新文章
- 滴滴自动驾驶部门成立独立公司,CTO张博兼任新公司CEO
- Kubernetes 日志收集的原理,看这一篇就够了
- 三阶魔方自动还原 vc实现
- Android Jetpack组件之数据库Room详解(三)
- ubuntu nginx php7,ubuntu 16 安装php7+nginx
- 限制对web路径的访问
- 关于Java里try/catch/finally/有return时执行过程
- ZGrapher 画函数曲线图的工具
- 黑马2018年JavaEE课程大纲
- Session的常用场景
- python的matplotlib画图时独立窗口_解决新版Pycharm中Matplotlib图像不在弹出独立的显示窗口问题...
- layui实际项目使用过程中遇到的兼容性问题
- Modelica运算符
- ArduinoUNO实战-第七章-PWM调光
- vue 选项卡切换
- [Jenkins] docker-slim 容器瘦身的使用
- Android gradient 三色渐变背景 Shap
- Hexo图片外链生成专用文章
- 你不可不用的十类Mac装机必备软件
- 集牛气 展虎威 | 指令集祝您新春快乐,虎年大吉!