android 外接usb设备之麦克风
来源:互联网 发布:淘宝代购怎么设置 编辑:程序博客网 时间:2024/04/30 15:32
private RecordThread recordThread;
private ImageView imageView;
private ImageView imageView_left;
public final Handler myHandler = new Handler() {
public void handleMessage(Message msg) {
int sound = (Integer) msg.obj;
updateMiStatus(sound);
};
};
public Display_audio(Context context, SWPageManager pagemananger) {
super(context, pagemananger);
}
@Override
public void onCreate() {
mLayoutInflater.inflate(R.layout.display_audio_record, this);
imageView_left = (ImageView) findViewById(R.id.imageview_left);
imageView = (ImageView) findViewById(R.id.imageview_right);
imageView_left.setImageResource(R.drawable.sound);
imageView.setImageResource(R.drawable.sound9);
recordThread = new RecordThread();
recordThread.start();
}
@Override
public void onDestroy() {
recordThread.pause();
}
/**
* 更新麦克风
*/
public void updateMiStatus(int sound) {
if (imageView != null) {
switch (sound) {
case 1:
imageView.setImageResource(R.drawable.sound1);
break;
case 2:
imageView.setImageResource(R.drawable.sound2);
break;
case 3:
imageView.setImageResource(R.drawable.sound3);
break;
case 4:
imageView.setImageResource(R.drawable.sound4);
break;
case 5:
imageView.setImageResource(R.drawable.sound5);
break;
case 6:
imageView.setImageResource(R.drawable.sound6);
break;
case 7:
imageView.setImageResource(R.drawable.sound7);
break;
case 8:
imageView.setImageResource(R.drawable.sound8);
break;
case 9:
imageView.setImageResource(R.drawable.sound9);
break;
default:
imageView.setImageResource(R.drawable.sound9);
break;
}
}
}
/**
* 获取麦克风
*/
class RecordThread extends Thread {
private AudioRecord ar;
private int bs;
private 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];
}
// 平方和除以数据总长度,得到音量大小。可以获取白噪声值,然后对实际采样进行标准化。
Log.d("spl", String.valueOf(v / (float) r));
double dB = 100 * Math.log10(v / (double) r);
int i = (int) (dB);
int u = (390 - i) / 5;
Message message = myHandler.obtainMessage();
message.what = 8686;
message.obj = u;
myHandler.sendMessage(message);
}
ar.stop();
}
public void pause() {
isRun = false;
}
public void start() {
if (!isRun) {
super.start();
}
}
}
@Override
public void onShow() {
// TODO Auto-generated method stub
}
@Override
public void onHidden() {
}
- android 外接usb设备之麦克风
- Android检测外接USB设备的几种方法
- Android外接usb摄像头
- android设备外接高拍仪
- 如何查看USB方式连接Android设备的外接设备信息
- 如何查看USB方式连接Android设备的外接设备信息。
- 安卓模拟器外接usb硬件设备
- android外接存储设备状态判断-USB和SD卡连接状态
- android 外接设备的问题
- Android 外接USB转串口设备开发笔记(Android与单片机通过usb转串口通信)
- java应用程序怎样获取外接设备信号(通过usb)
- linux 外接USB名和设备号转换
- 论android外接存储设备状态判断
- android外接存储设备状态判断
- android设备外接键盘实现监听事件
- Android外接midi设备的录音
- android设备应用读取外接U盘设备方法
- Android NDK——TextureView的应用之调用外接USB摄像头自动对焦并完成隐蔽拍照
- Java中反射机制
- HDU 1540<线段树,区间并>
- c++ const
- MatLab2012b/MatLab2013b分类器大全(svm,knn,随机森林等)
- Tomcat只能用localhost访问工程,无法用ip地址访问
- android 外接usb设备之麦克风
- 屏幕上1像素代表的实际距离是多少?
- 操作Excel表格的功能类 ExcelReader
- POJ-2689 Prime Distance(两次素数筛+偏移处理)
- HDU 4588 Count The Carries
- Android 之Selector选择器的使用
- 冯3退出&&目录打印(迭代)
- CSS书写规范
- Android EditText输入最大值提示功能