基于PocketSpinxAndroiDemo和javadrone api实现ARDrone语音控制

    首先需要调通Android离线语音识别demo工程PocketSpinxAndroiDemo,在该工程的基础上使用javadrone api实现ARDrone语音控制。
  第一步,修改布局文件main.xml,在其中增加一个Button和一个TextView,分别用来实现连接ARDrone和显示ARDrone电池信息。
  然后,修改 AndroidManifest.xml文件,在该文件下方加上wifi获取、sdcard读写等权限获取的语句,例如,
     <uses-permission android:name= "android.permission.ACCESS_NETWORK_STATE"  />
     <uses-permission android:name= "android.permission.ACCESS_WIFI_STATE"  />     
这些权限获取语句和笔记“基于javadrone api实现ARDrone Android控制”( 该笔记修改后的工程文件夹是ARDrone-on-Android )中的基本一样。
        最后,需要修改源代码。将javadrone api中 ardrone、ardrone/comands、ardrone/video几个库拷贝到/src/com/comcodeminders下(或者直接从 ARDrone-on-Android工程中拷贝过来 );将ARDrone-on-Android/src/com/profusiongames/MathUtil.java拷贝到 PocketSpinxAndroiDemo/src/ edu/cmu/pocketsphinx/demo下,接下来,修改PocketSpinxAndroiDemo中 PocketSpinxDemo.java文件,主要修改如下,
1. 添加main.xml中增加的 Button的响应,该响应涉及Android SDK的SensorEventListener的重载,以及任务同步等,从而连接ARDrone。
2. 给PocketSpinxAndroiDemo中用来显示语音识别结果的EditText控件添加TextWatcher。TextWatcher中每次语音识别结果出来时,对飞机做相应控制。
3. 添加main.xml中增加的TextView的响应,该响应要重载 javadrone api中NavDataListener,从而显示ARDrone的电池信息
其中,1和3可以参考 笔记“基于javadrone api实现ARDrone Android控制”,2则可以参考笔记“【转】Android EditText控件事件监听 ”。
          总的来说,修改后的PocketSpinxDemo.java相当于修改前的该文件和ARDrone-on-Android/src/com/profusiongames/FusionDrone.java的合并,只是修改后对飞机的控制不再通过按钮来控制,而是通过监听EditText控件(该控件用来显示 语音识别的结果 )来实现。
          下面说说修改过程中的注意点。
          首先一点是,由于是在他人工程上修改,所以该工程的app名、java程序的类名什么的都不要动,免得后面app运行时出现"Unfortunately,xxx has stopped!"等坑爹错误,这很可能就是因为找不到activity造成的,而activity是因为类名被你改动过而找不到的!
          然后,Java下的字符串比较和C/C++下是不一样的。Java中,==比较两个String对象的指向的内存地址是否相等, 要比较 两个String对象的值是否相等,需要用 equals方法,比如a.equals(b)。

参考:
笔记“基于javadrone api实现ARDrone Android控制”
笔记“【转】Android EditText控件事件监听
http://www.cnblogs.com/killerlegend/p/3237522.html(app运行错误" Unfortunately,xxx has stopped!"原因解析

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值