android吹一吹功能的实现,利用麦克风去监听频率的变化。
2013-10-23 16:03
543 查看
android吹一吹功能的实现,利用麦克风去监听频率的变化。
源码下载地址:http://download.csdn.net/detail/hcb1230/6442773
一下主要代码:
源码下载地址:http://download.csdn.net/detail/hcb1230/6442773
一下主要代码:
package com.li; import android.media.AudioFormat; import android.media.AudioRecord; import android.media.MediaRecorder; import android.os.Message; //import com.bshark.letmessage.ui.BlowActivity.MyHandler; //import com.bshark.letmessage.util.Parameter; import com.li.BlowActivity.MyHandler; public class RecordThread extends Thread { private AudioRecord ar; private int bs = 100; private static int SAMPLE_RATE_IN_HZ = 8000; private Message msg; private int number = 1; private int tal = 1; private MyHandler handler; private long currenttime; private long endtime; private long time = 1; //到达该值之后 触发事件 private static int BLOW_ACTIVI=3000; public RecordThread(MyHandler myHandler) { 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); handler = myHandler; } @Override public void run() { try { ar.startRecording(); Parameter.isblow = true; // 用于读取的 buffer byte[] buffer = new byte[bs]; while (Parameter.isblow) { number++; sleep(8); currenttime = System.currentTimeMillis(); int r = ar.read(buffer, 0, bs) + 1; int v = 0; for (int i = 0; i < buffer.length; i++) { v += (buffer[i] * buffer[i]); } int value = Integer.valueOf(v / (int) r); tal = tal + value; endtime = System.currentTimeMillis(); time = time + (endtime - currenttime); if (time >= 500 || number > 5) { int total = tal / number; if (total > BLOW_ACTIVI) { //发送消息通知到界面 触发动画 //利用传入的handler 给界面发送通知 BlowActivity.i+=1; handler.sendEmptyMessage(0); //改变i的值后,发送一个空message到主线程 // number = 1; tal = 1; time = 1; } } } ar.stop(); ar.release(); bs=100; } catch (Exception e) { e.printStackTrace(); } } }
相关文章推荐
- android吹一吹功能的实现,利用麦克风去监听频率的变化。
- Android应用如何监听自己是否被卸载及卸载反馈功能的实现(第三版)
- Android应用如何监听自己是否被卸载及卸载反馈功能的实现
- Android短信监听(二)——利用ContentObserver实现短信监听
- 【Android】12.6 利用Intent实现记事本功能(NotePad)
- Android利用系统广播---监听网络变化
- android中Handler简介&利用Handler实现计时功能
- Android利用ViewPager+GridView,实现网格布局(功能列表)并能水平滑动
- Android利用Gallery和ImageSwitcher实现在线相册图片预览功能(异步加载图片)
- Android利用CountDownTimer类实现倒计时功能
- 【Android游戏开发十六】Android Gesture之【触摸屏手势识别】操作!利用触摸屏手势实现一个简单切换图片的功能!
- Android应用如何监听自己是否被卸载及卸载反馈功能的实现(第二版)
- android利用service实现下载apk自动更新功能
- Android之电话监听(利用服务实现)
- Android之使用Contentprovider对外共享数据和实现数据监听变化
- Android - 小功能 - 对ScrollView滚动监听,实现美团、大众点评的购买悬浮效果
- 【Android游戏开发十六】Android Gesture之【触摸屏手势识别】操作!利用触摸屏手势实现一个简单切换图片的功能!
- 探讨Android实现后台(Service)按键监听的功能
- Android开发实现AlertDialog中View的控件设置监听功能分析
- Android利用Sensor(传感器)实现指南针小功能