Android 分贝测试仪功能
android:focusableInTouchMode=“true”
android:background="@android:color/white">
<LinearLayout
android:layout_width=“match_parent”
android:layout_height=“match_parent”
android:orientation=“vertical”>
<LinearLayout
android:layout_width=“match_parent”
android:layout_height=“wrap_content”
android:orientation=“horizontal”
android:padding=“10dp”>
<TextView
android:layout_width=“wrap_content”
android:layout_height=“wrap_content”
android:text=“10dB”
android:textColor="@android:color/holo_green_light"
android:textSize=“20dp”
android:textStyle=“bold” />
<TextView
android:layout_width=“wrap_content”
android:layout_height=“wrap_content”
android:layout_marginLeft=“10dp”
android:text=“呼吸声”
android:textColor="@android:color/darker_gray"
android:textSize=“20sp”/>
<View
android:layout_width=“wrap_content”
android:layout_height=“1dp”
android:background="@android:color/darker_gray"/>
。。。。
分贝值旁边的两个小喇叭是有动画效果的animation-list
接下来是 MicDemoActivity 完成开启麦克风接收音量功能
package com.rikka.toolbox;
import android.app.Activity;
import android.graphics.drawable.AnimationDrawable;
import android.media.MediaRecorder;
import android.os.Bundle;
import android.os.Environment;
import android.os.Handler;
import android.os.Message;
import android.support.annotation.Nullable;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.View;
import android.view.WindowManager;
import android.widget.ImageView;
import android.widget.TextView;
import java.io.File;
import java.io.IOException;
import java.text.DecimalFormat;
public class MicDemoActivity extends Activity {
private MicroPhoneThread microPhone = new MicroPhoneThread(); //线程用于实时录制周围声音
public boolean istrue = true;
private MediaRecorder mARecorder; //麦克风控制
private File mAudiofile,mSampleDir; //录音文件保存
private ImageView iv_record_wave_left,iv_record_wave_right;
private AnimationDrawable ad_left,ad_right;
private TextView textView1;
private MHandler mHandler = new MHandler();
class MHandler extends Handler{
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what){
case 1:
textView1.setText(msg.obj.toString());
}
}
}
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON,
WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
setContentView(R.layout.activity_mic);
init();
}
private void init() {
//初始化左侧动态动画控件
iv_record_wave_left = findViewById(R.id.iv_record_wave_left);
iv_record_wave_right = findViewById(R.id.iv_record_wave_right);
ad_left = (AnimationDrawable) iv_record_wave_left.getBackground();
ad_right = (AnimationDrawable) iv_record_wave_right.getBackground();
ad_left.start();
ad_right.start();
textView1 = findViewById(R.id.textView1);
}
@Override
protected void onStart() {
super.onStart();
//录音获取麦克风声音
mARecorder = new MediaRecorder(); //声音录制
mARecorder.setAudioSource(MediaRecorder.AudioSource.MIC); //录制的音源为麦克风
mARecorder.setOutputFormat(MediaRecorder.OutputFormat.RAW_AMR); //设置音频文件的编码
mARecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); //设置audio格式
try{
mSampleDir = Environment.getExternalStorageDirectory(); //获取手机内存路径
//用IM+系统当前时间为文件名建立.amr的文件,文件路径为mSampleDir
mAudiofile = File.createTempFile(“IM” + System.currentTimeMillis(),".amr",mSampleDir);
} catch (IOException e) {
Log.e(“IMMESSAGE”,“sdcard access error”);
}
mARecorder.setOutputFile(mAudiofile.getAbsolutePath()); //设置路径
try{
mARecorder.prepare();
} catch (IOException e) {
e.printStackTrace();
}
mARecorder.start();
microPhone.start();
}
//返回功能
public void onBack(View v){
MicDemoActivity.this.finish();
}
class MicroPhoneThread extends Thread{ //测试当前分贝值通知UI修改
final float minAngle = (float) Math.PI * 4 / 11;
float angle;
@Override
public void run() {
while(istrue){
angle = 100 * minAngle * mARecorder.getMaxAmplitude() / 32768;
if(angle > 100){
angle = 100;
Android 分贝测试仪功能相关推荐
- Android 分贝测试仪功能,你会的还只有初级Android工程师的技术吗
android:textSize="40sp" android:textStyle="bold"/> <ImageView android:id=& ...
- 荷包app软件测试,智能分贝测试仪app
智能分贝测试仪app 智能分贝测试仪app是一款可以通过手机麦克风对周边环境噪音进行检测评估的软件,检测完成之后,会为用户显示当前的环境噪音分贝值,还可以根据用户的定位设置,来判定,当前的噪音水平对于 ...
- Android 实现闹钟功能
原文地址:Android 实现闹钟功能作者:Android_Learners 一.手机闹钟主要用到了AlarmManager类,AlarmManager类提供了访问系统定时服务的途径,开发人员可以 ...
- android 添加附件功能,Android实现带附件的邮件发送功能
本文实例讲解了基于基于jmail实现android邮件发送功能,分享给大家供大家参考,具体内容如下 在android上发送邮件方式: 第一种:借助gmail app客户端,缺点是必须使用gmail帐号 ...
- android倒计时功能,android实现倒计时功能(开始、暂停、0秒结束)
本文实例为大家分享了android实现倒计时功能的具体代码,供大家参考,具体内容如下 [思路]:通过 timer 执行周期延时的任务,handler 中将计时信息更新,并在计时结束时结束 timer ...
- android p新功能_android 11今天发布这是新功能
android p新功能 Google has just released the upgraded OS to select Pixel, OnePlus, and Xiaomi phones. A ...
- android 带清除功能的输入框控件
今天,看到一个很好的自定义输入框控件,于是记录一下. 效果很好: 一,自定义一个类,名为ClearEditText package com.example.clearedittext;import a ...
- android 调用红外模块,Flutter调用Android模块的功能
Flutter调用Android模块的功能,主要通过MethodChannel Flutter端 const MethodChannel _channel = const MethodChannel( ...
- android 最新功能介绍,Android Studio 常用功能介绍
界面介绍 讲解1 这个界面,显示了我们使用 Android Studio时经常接触到的功能面板. Project 面板. 用于浏览项目文件. Project 面板会显示当前的所有的 module . ...
- 集成Android免费语音合成功能(在线、离线、离在线融合),有这一篇文章就够了(离线)
原址 集成Android免费语音合成功能(在线.离线.离在线融合),有这一篇文章就够了(在线) 集成Android免费语音合成功能(在线.离线.离在线融合),有这一篇文章就够了(离在线融合) ...
最新文章
- python SSL error: [SSL: TLSV1_ALERT_PROTOCOL_VERSION] tlsv1 alert protocol version (_ssl.c:590) 解决方法
- python决策树生成规则_如何从scikit-learn决策树中提取决策规则?
- Scrapy框架的学习(8.scrapy中settings.py里面配置说明以及怎样设置配置或者参数以及怎样使用)
- 2018年12月7日 字符串格式化2 format与函数1
- 【iOS开发-74】解决方式:Xcode6下利用preference保存数据,终于的plist文件在哪里?...
- Teamviewer
- Qt实现Areo效果
- 计算机操作系统答案(完整版)
- 机房工程主要施工方法和机房工程验收
- yylabel 加载html,YYLabel的简单使用
- Python实现飞翔的小鸟
- 一个基于Angular4+Bootstrap4+Scss的后台管理系统界面
- 基于云服务创建实时运营数据分析服务(二)
- 区块链应用项目背景_项目路演背景介绍区块链 什么是区块链
- 上联:男足输完日本,输越南
下联:女足赢完越南,赢日本
横批:公仇母报
- 视觉在机器人领域的应用
- 计算机课高数怎么过,我是大一新鸟,学软件,想向大虾们讨教几手,我有高数,英语,法律.计算机,4门课,我该怎么学!介绍越详细越好,...
- 2018-12-12
- 圣诞节快要来了,可我就是_我圣诞节想要的一切:前奏便携式无线充电器
- 用Python简单模拟《原神》抽卡系统