通过J2ME的录音功能实现简易示波器

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-01 14:20 点击:

早就有人通过PC声卡的输入(麦克风孔)来做模拟示波器,但是用手机来实现的比较少。用J2ME的MMAPI实现模拟示波器,具体效果稍逊于智能机,因为智能机可以实时读取麦克风输入流,而J2ME还需要有短暂的缓冲构成了阻塞,不过,实现出来玩一下还是足够了。

先贴出效果图:

 

左图是程序在WTK

\

运行的结果,右图是Audition读取音频输入口的波形,信号源是一个经过信号放大的压力传感器。

程序使用NetBeans + LWUIT类库,接下来贴出全部代码:

view plaincopy to clipboardprint?
import com.sun.lwuit.Command;  
import com.sun.lwuit.Display;  
import com.sun.lwuit.Form;  
import com.sun.lwuit.events.ActionEvent;  
import com.sun.lwuit.events.ActionListener;  
import com.sun.lwuit.layouts.BorderLayout;  
import java.io.ByteArrayOutputStream;  
import javax.microedition.media.Manager;  
import javax.microedition.media.Player;  
import javax.microedition.media.control.RecordControl;  
 
/** 
 * @author 张国威 
 */ 
public class Frm_MainMenu extends javax.microedition.midlet.MIDlet implements ActionListener {  
    public Form form ;  
    private  Command cmdExit = new Command("退出", 1);  
    private ThreadReceive threadReceive =new ThreadReceive();//接收数据线程  
    private Cmp_Wave cmp_HeartWave=null;  
    private Player capturePlayer = null;  
    private RecordControl recordControl = null;  
    private ByteArrayOutputStream bos = new ByteArrayOutputStream();  
    public void startApp() {  
        Display.init(this);  
          
        form = new Form();//达到全屏的效果  
        cmp_HeartWave=new Cmp_Wave(form.getHeight(),form.getWidth());  
        form.getStyle().setBgImage(null);//本窗体不需要背景  
        form.addCommand(cmdExit);  
        form.setCommandListener(this);  
        form.setLayout(new BorderLayout());  
        //设置画板控件  
        form.addComponent(BorderLayout.CENTER,cmp_HeartWave);//添加控件  
        form.show();  
        try {  
          capturePlayer = Manager.createPlayer("capture://audio?rate=8000&bits=8&channels=1");//PCM,8位,8kH  
          if (capturePlayer != null) {  
            capturePlayer.realize();  
            recordControl = (RecordControl) capturePlayer  
                .getControl("javax.microedition.media.control.RecordControl");  
            if (recordControl == null)  
     &nb

    相关新闻>>

      发表评论
      请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
      用户名: 验证码:点击我更换图片
      最新评论 更多>>

      推荐热点

      • Windows Phone 项目实战之我的微盘(下)
      • Windows Phone 实用开发技巧(26):对DataTemplate中的元素播放
      • Windows Phone 实用开发技巧(25):Windows Phone读取本地数据
      • Windows Phone 实用开发技巧(27):创建透明Tile
      • Windows Phone 知识锦(12月版)
      • Windows Phone实用开发技巧(31):密码加密
      • Windows Phone 项目实战之我的微盘(上)
      • WP7实例篇之土豆搜索器(2)
      • [翻译]WP7 QuickStart-第七篇-布局
      网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
      Copyright © 2008-2015 计算机技术学习交流网. 版权所有

      豫ICP备11007008号-1