android+噪音测试,Android技术开发之:噪音测试
首先,看看核心Activity:
import?android.app.Activity;
import?android.media.AudioFormat;
import?android.media.AudioRecord;
import?android.media.MediaRecorder;
import?android.os.Bundle;
import?android.os.Handler;
import?android.os.Looper;
import?android.os.Message;
import?android.view.Menu;
import?android.widget.TextView;
public?class?MainActivity?extends?Activity?{
private?TextView?text;
private?AudioRecord?ar;
private?int?bs;
private?static?final?int?SAMPLE_RATE_IN_HZ?=?44100;
public?boolean?isRun?=?false;
private?Handler?handler?=?new?Handler(){
@Override
public?void?handleMessage(Message?msg)?{
super.handleMessage(msg);
switch(msg.what){
case?1:
text.setText(msg.obj.toString());
break;
default:
break;
}
}
};;
@Override
public?void?onCreate(Bundle?savedInstanceState)?{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
text?=?(TextView)?findViewById(R.id.text);
MainThread?mt?=?new?MainThread();
mt.start();
}
class?MainThread?extends?Thread?{
public?void?run()?{
Looper.prepare();
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);
ar.startRecording();
isRun?=?true;
while?(isRun)?{
short[]?buffer?=?new?short[bs];
int?r=ar.read(buffer,?0,?bs);
int?v?=?0;
for?(int?i?=?0;?i?
v?+=?buffer[i]*buffer[i];
}
Message?msg?=?new?Message();
msg.what?=?1;
msg.obj?=?(int)Math.round(10*Math.log10(v/r));//單位是dB
handler.sendMessage(msg);
try?{
Thread.sleep(500);
}?catch?(InterruptedException?e)?{
e.printStackTrace();
}
}
ar.stop();
Looper.loop();
}
}
@Override
public?void?onBackPressed()?{
super.onBackPressed();
isRun?=?false;
ar.release();
System.exit(0);
}
@Override
public?boolean?onCreateOptionsMenu(Menu?menu)?{
getMenuInflater().inflate(R.menu.main,?menu);
return?true;
}
}
AndroidManifest.xml
http://schemas.android.com/apk/res/android"
package="*****此處隱私******"
android:versionCode="1"
android:versionName="1.0"?>
android:minSdkVersion="8"
android:targetSdkVersion="15"?/>
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme"?>
android:name=".MainActivity"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
android:label="@string/title_activity_main"?>
其他布局文件自己定義即可。
此處關(guān)鍵在于對(duì)獲取的樣本數(shù)據(jù)進(jìn)行分析。
總結(jié)
以上是生活随笔為你收集整理的android+噪音测试,Android技术开发之:噪音测试的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: android手机助手排名,2019手机
- 下一篇: 工具 | Notepad++使用技巧